内存布局方式——托管<=>非托管-数据传输(防止数据错乱)
非托管中如下定义,使用StructLayout、FieldOffset特性
并且项目还要启用允许不安全代码执行:修改项目的.csproj文件在PropertyGroup节点中添加一行<AllowUnsafeBlocks>true</AllowUnsafeBlocks>。
[StructLayout(LayoutKind.Explicit, Size = 40)] public unsafe struct DataRecordT14_Rope : IRecord<int>, ITime { public const int Length = 14; /// <summary> /// 段落位置 /// </summary> [FieldOffset(0)] public int Index; /// <summary> /// 时间戳 /// </summary> [FieldOffset(4)] public DateTime Time; /// <summary> /// 14路数据 /// </summary> [FieldOffset(12)] public fixed ushort Data[Length]; }