標籤:
資料原型
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct AccountMsg
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 21)]
public byte[] Name; /*w姓名*/
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public byte[] SexNo; /*w性別*/
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 19)]
public byte[] DeptCode; /*部門代碼*/
[MarshalAs(UnmanagedType.U4)]
public uint CardNo; /*卡號*/
[MarshalAs(UnmanagedType.U4)]
public uint AccountNo; /*帳號*/
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 21)]
public byte[] StudentCode; /*w學號*/
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 26)]//如果長度改為21 有時候會報錯引發類型為“System.ExecutionEngineException”的異常。
public byte[] IDCard; /*w社會安全號碼*/
有時出錯,有時不出錯,是因為byte[]起初返回的值可以區分,當不能填滿第一個byte時,後面的byte【】
就無法填裝了。所以如果是最後一個byte【】資料長度不足也可以返回,但後面還跟有byte【】時,資料位元就不對整了
因此,會引發無法預知的錯誤。
轉自 http://blog.csdn.net/jacky_zh/article/details/8530281
轉 引發類型為“System.ExecutionEngineException”的異常。