将字符串向量C++封送到 C#
Marshal C++ string vector to C#
如何返回 C# 代码的C++ std::vector<std::string>
?我的方法声明(C++面(目前看起来像:
__declspec(dllexport) std::vector<std::string> __cdecl Initialize(std::vector<std::string> array = {})
但我不知道如何获得vector
或如何将其发送给C++。
任何帮助将不胜感激。
封
送一vector
字符串并非易事。
可以考虑使用 C++/CLI 在 C++ 和 C# 之间构建桥接层。
如果您不想使用 C++/CLI,一个有效的替代方法是使用 SAFEARRAY
s。您可以使用 ATL::CComSafeArray
简化 C++ 中的安全阵列编程。
您可能会发现这篇关于 MSDN 杂志上安全阵列的文章很有帮助。
您还应该注意字符串编码。如果对 std::string
使用 UTF-8,则应将 SAFEARRAY(BSTR)
或 .NET String
类转换为 UTF-16。