读书人

结构体中要放一个固定长度的string对象

发布时间: 2012-01-12 22:11:58 作者: rapoo

结构体中要放一个固定长度的string对象和byte[]对象,如何做?
struct CStruct
{
string s; // 期望这个string包含20个字符和1个结束符
byte[] b; // 期望这个数组包含20个元素
}

[解决办法]
[StructLayout(LayoutKind.Sequential)]
struct CStruct {
[MarshalAs(UnmanagedType.LPStr,SizeConst=21)]
public string s;
[MarshalAs(UnmanagedType.LPArray,SizeConst=20)]
public byte [] b;
}
[解决办法]

探讨
[StructLayout(LayoutKind.Sequential)]
struct CStruct {
  [MarshalAs(UnmanagedType.LPStr,SizeConst=21)]
  public string s;
  [MarshalAs(UnmanagedType.LPArray,SizeConst=20)]
  public byte [] b;
}

[解决办法]
探讨
UnmanagedType中的类型有些看起来很混淆,谁能详细解释一下,谢谢!

读书人网 >C#

热点推荐