如何在C#中编组列表

我必须从C#向C ++发送一个列表.C#列表是ListMyList ,C ++代码接受它作为listcppList如何使用marshalas。

谢谢

不使用本机代码和托管代码之间的复杂类型编组总是更明智的。 在List情况下,这些类型完全不同,因为它们对于每个项目具有不同的存储器布局。

因此,最好的方法是在本机dll中编写一个实用程序函数,它接受字符串数组(char *)并手动构建您的本机List并最终调用所需的方法。 您可以轻松创建该实用程序函数的包装器。

C#不能P / Invoke复杂的C ++类型。 您将不得不使用C ++ / CLI,他们可能有一个方法来编组它。 否则,你必须单独编组每个字符串。

C#中的stringswstrings (2字节的unicode字符串),所以如果你说的是真的,那么就不需要特殊的转换。