我有一个 C# 结构声明如下:
public struct AdvertisementData {
public byte SomeId;
[MarshalAs(UnmanagedType.LPArray , SizeConst = 12)]
public byte[] AnArray;
}
它是 C++ 的对应部分:
struct AdvertisementData {
uint8_t SomeId;
uint8_t AnArray[12];
};
当我尝试将上述结构的堆栈分配实例的引用从 C++ 发送到 C# 时,我得到:“Byte[] 类型的结构字段无法编组为 LPArray。”
知道我做错了什么吗?
尝试将其封送为 ByValArray:
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)]
public byte[] AnArray;
另外,您确定不需要设置任何布局类型对于你的结构?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)