有什么办法可以从c++到c#获取字符串集合
C#代码
[DllImport("MyDLL.dll")]
private static extern List<string> GetCollection();
public static List<string> ReturnCollection()
{
return GetCollection();
}
C++代码
std::vector<string> GetCollection()
{
std::vector<string> collect;
return collect;
}
以上代码仅为示例,主要目的是从C++中获取C#中的集合,不胜感激
//詹姆士
最佳答案
有多种方法可以解决这个问题,但它们都比您目前拥有的方法复杂得多。
将在 C++ 中分配的字符串传递给 C# 的最简单方法可能是作为 BSTR
。这允许您在 C++ 中分配字符串并让 C# 代码解除分配它。这是您面临的最大挑战,BSTR
可以轻松解决它。
由于您需要一个字符串列表,您可以更改为将其编码为 BSTR
数组。这是一种方式,这可能是我会采用的方式,但还有许多其他方式。
关于c# - 如何在托管代码 (C#) 中从 native 代码 (C++) 获取字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5258607/