[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;
}
ฉันมีปัญหาแปลก ๆ ใน Arm4/WinCE โดยที่ Marshal.SizeOf() สำหรับ struct นี้ส่งคืน 24 ไบต์ แต่ในระบบ x86/Win32 จะส่งคืน 20 ไบต์ สิ่งนี้ขัดขวางความสามารถในการทำงานร่วมกันของฉันผ่านสายอย่างมาก มีใครรู้บ้างว่าทำไม?