[英]Marshalling dynamic size array into struct
如何使用动态大小的数组定义结构?
这样对吗?
struct MyStruc {
public int len;
[MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)]
public int buf[];
}
假设您需要一个包含指向数组的指针的结构。
将指向数组的指针声明为IntPtr
并使用Marshal.AllocHGlobal
, Marshal.Copy
等手动编组数组内容。
假设您需要一个可变大小的结构而不是包含指向该数组的指针的结构。
您不能使用p / invoke封送变量大小的结构。 您至少有以下两个选项:
Marshal.AllocHGlobal
, Marshal.Copy
等手动Marshal.AllocHGlobal
结构。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.