首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

结构体中要放一个固定长度的string对象和byte[]对象,怎么做

2012-01-12 
结构体中要放一个固定长度的string对象和byte[]对象,如何做?struct CStruct{string s // 期望这个string

结构体中要放一个固定长度的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中的类型有些看起来很混淆,谁能详细解释一下,谢谢!

热点排行