如何在C#中编组列表
我必须从C#向C ++发送一个列表.C#列表是ListMyList
,C ++代码接受它作为listcppList
如何使用marshalas。
谢谢
不使用本机代码和托管代码之间的复杂类型编组总是更明智的。 在List
情况下,这些类型完全不同,因为它们对于每个项目具有不同的存储器布局。
因此,最好的方法是在本机dll中编写一个实用程序函数,它接受字符串数组(char *)并手动构建您的本机List
并最终调用所需的方法。 您可以轻松创建该实用程序函数的包装器。
C#不能P / Invoke复杂的C ++类型。 您将不得不使用C ++ / CLI,他们可能有一个方法来编组它。 否则,你必须单独编组每个字符串。
C#中的strings
是wstrings
(2字节的unicode字符串),所以如果你说的是真的,那么就不需要特殊的转换。