我有一个 C++ Dll,我无法修改它,我需要将它与我的 C# 代码一起使用。因此,我创建了一个 C++/CLI 类作为原始 C++ 类的包装器。
有一个带有 int** 参数的方法,我不知道如何将它传递给 C++/CLI 代码,然后传递给 C# 代码。
以下是返回帧中元素数量的原生 C++ 方法的定义:
int Precursor::GetFrame(int **frame, int id)
你能帮我解决这个问题吗?谢谢
导入 C++ DLL 时,您需要将指向指针的指针编组int **frame
为ref IntPtr ppFrame
. 您的 CLI 函数将使用IntPtr% frame
.
使用编组请参阅下面的链接 http://www.codeproject.com/Articles/66244/Marshaling-with-C-Chapter-2-Marshaling-Simple-Type