我正在尝试包装一个C ++库,以便在C#WPF项目中使用。作为其中的一部分,我需要传递并将大型数组从C#返回到C ++并返回一个大数组。传递数组似乎是这样实现的:
namespace CppWrapper {
public ref class CppWrapperClass
{
public:
void DoStuff(int* pInt, int arraySize);
private:
computingClass* pCC;
};
}
然后这样叫:
int noElements = 1000;
int[] myArray = new int[noElements];
for (int i = 0; i < noElements; i++)
myArray[i] = i * 10;
unsafe
{
fixed (int* pmyArray = &myArray[0])
{
CppWrapper.CppWrapperClass controlCpp = new CppWrapper.CppWrapperClass();
controlCpp.DoStuff(pmyArray, noElements);
}
}
如何返回数组?
注意:我希望获得有关实现此目标的最佳方式的任何反馈。我很惊讶从C#到C ++并不容易。我发现用JNI包装库要容易得多。