[StructLayout( LayoutKind.Explicit, Pack = 1, Size = 20 )]
public struct StatusStruct
{
/// <summary>
/// validation field
/// </summary>
[FieldOffset( 0 )]
public Int32 _magic;
/// <summary>
/// Packet sequence number
/// </summary>
[FieldOffset( 4 )]
public Int32 _seq;
/// <summary>
/// Packet timestamp
/// </summary>
[FieldOffset( 8 )]
public Int64 _timestamp;
/// <summary>
/// Length of data section
/// </summary>
[FieldOffset( 16 )]
public Int32 _len;
}
Saya memiliki masalah aneh di Arm4/WinCE di mana Marshal.SizeOf() untuk struct ini mengembalikan 24 byte, tetapi pada sistem x86/Win32 ia mengembalikan 20 byte. Ini sangat menghambat interoperabilitas saya melalui kabel. Ada yang tahu kenapa?