数据操作还是C++的指针、数组方便。但是C#的数组都是这样的:
byte【】 a=new … 这等于是将结构体分成了两个部分,完全与实际不符。
如何实现C++结构体中的数组呢:
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct MyData
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)]
public byte[] data;//10byte
}
————————————————————————————————
经过测试,上面的方法不对,多日后,偶然搜索到,经测试下面的方法才可以:
public unsafe struct Modbus_Well_name20 // 这里要加unsafe
{
public fixed ushort _name[20]; // 这里要加fixed
}