C# 在C中,将指针作为函数参数传递给指向结构的指针#

C# 在C中,将指针作为函数参数传递给指向结构的指针#,c#,pointers,struct,parameter-passing,C#,Pointers,Struct,Parameter Passing,在C#中,如何将指向结构的指针作为函数参数传递 我试图使用DLL中的一个函数,它有一个参数作为双指针。例如 struct mystruct { int a; char b; }; [DllImport("mydll.dll")] private static extern int func_name(int a, char b, mystruct** c); 我想使用int*a这样的指针的正确方法是refinta。对于int**a,有没有类似的东西?我会做不同的工作。 任何指针都

在C#中,如何将指向结构的指针作为函数参数传递

我试图使用DLL中的一个函数,它有一个参数作为双指针。例如

struct mystruct
{
   int a;
   char b;
};

[DllImport("mydll.dll")]
private static extern int func_name(int a, char b, mystruct** c);

我想使用
int*a
这样的指针的正确方法是
refinta
。对于
int**a
,有没有类似的东西?

我会做不同的工作。
任何指针都应该用作

System.IntPtr

然后我会使用

Marshal.ptr结构


用于指针到实际结构的实际转换。否则,我也会考虑用偏移量拷贝字段,这有时更容易调试。

< P> <强>指针指向指针的CLR等效项是“代码> REF ItPTR < <强> >/P> 是指向整数的指针,当您通过
ref
传递它时,它通过引用传输,使其成为指向指针的指针

您可能还需要使用将指针转换为结构对象

有关更多信息,请参阅的底部标题为“手动编组”的部分