gol*_*azo 5 c# pinvoke struct marshalling
我如何定义一个具有动态大小数组的结构?
这样对吗?
struct MyStruc {
public int len;
[MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)]
public int buf[];
}
Run Code Online (Sandbox Code Playgroud)
假设您想要一个包含指向数组的指针的结构。
声明的指针数组IntPtr和手动封送数组的内容Marshal.AllocHGlobal,Marshal.Copy等等。
假设您想要一个可变大小的结构而不是包含指向数组的指针的结构。
您不能使用 p/invoke 封送可变大小的结构。您至少有以下两个选择:
Marshal.AllocHGlobal,Marshal.Copy等等。