如何在 C++ 和 C# 之间传递 Int**

How to pass a Int** between C++ and C#

本文关键字:Int 之间 C++      更新时间:2023-10-16

我有一个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