我将如何返回 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++ 中的安全数组编程。
您可能会发现 this article on safe arrays on MSDN Magazine有帮助。
你还应该注意字符串编码。如果您为 std::string
使用 UTF-8,那么您应该将 SAFEARRAY(BSTR)
或 .NET String 转换为 UTF-16
类。
关于c# - 将 C++ 字符串 vector 编码到 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43032508/