现有一个结构体如下:
[StructLayout(LayoutKind.Explicit )]
public struct MMSG
{
[FieldOffset(0)] public uint wd;
[FieldOffset(4)] public ushort wm;
[FieldOffset(6)] public ushort w1;
[FieldOffset(8)] public ushort w2;
[FieldOffset(10)] public ushort w3;
}
怎样把这个结构体中的数据按数据大小,顺序存放到一个Byte[]中呢
[StructLayout(LayoutKind.Explicit )]
public struct MMSG
{
[FieldOffset(0)] public uint wd;
[FieldOffset(4)] public ushort wm;
[FieldOffset(6)] public ushort w1;
[FieldOffset(8)] public ushort w2;
[FieldOffset(10)] public ushort w3;
}
怎样把这个结构体中的数据按数据大小,顺序存放到一个Byte[]中呢
================================================================
此帖通过csdn小助手回复。
CSDN小助手是使用vb.net编写的CSDN论坛脱机“外挂”,她能够在
脱离IE的情况下使用Csdn论坛。程序只加载最核心的数据,所以显示更
快,产生的流量更小。 下载地址:http://qqwwee.com/csdn.rar
================================================================
public unsafe byte[] Struct2Bytes(MMSG obj)
{
int size = Marshal.SizeOf(obj);
byte[] bytes = new byte[size];
fixed(byte* pb = &bytes[0])
{
Marshal.StructureToPtr(obj,new IntPtr(pb),true);
}
return bytes;
}
http://search.csdn.net/Expert/topic/1865/1865020.xml?temp=.6136896