有的时候,由于接口或模板需要,必须在结构中定义元素的长度,方便解释。那么怎么办呢?通过MarshalAsAttribute类来实现(指示如何在托管代码与非托管代码之间封送数据。)具体如下:
[StructLayoutAttribute(LayoutKind.Sequential)]
public struct NET_DVR_ACTIVATECFG { uint dwSize; [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.Struct)] public byte[] sPassWord ; [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 108, ArraySubType = UnmanagedType.I1)] public byte[] byRes;}
注意:[StructLayoutAttribute(LayoutKind.Sequential)]结构序列化声明。
新闻热点
疑难解答