[英]Marshal C++ string vector to C#
我如何将C ++ std::vector<std::string>
到C#代码? 我的方法声明(C ++端)当前如下所示:
__declspec(dllexport) std::vector<std::string> __cdecl Initialize(std::vector<std::string> array = {})
但是我不知道如何获取vector
或如何将其发送到C ++。
任何帮助是极大的赞赏。
封送字符串vector
并非易事。
您可以考虑使用C ++ / CLI在C ++和C#之间构建桥接层。
如果您不想使用C ++ / CLI,则有效的替代方法是使用SAFEARRAY
。 您可以使用ATL::CComSafeArray
简化C ++中的安全数组编程。
您可能会在MSDN Magazine上发现有关安全阵列的这篇文章很有帮助。
您还应该注意字符串编码。 如果您对std::string
使用UTF-8,那么对于SAFEARRAY(BSTR)
或.NET String
类,应将其转换为UTF-16。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.