在C/S端编程的时候,经常要在C端和S端之间传数据时自定义一下报文的帧头,如果是在C/C++,封装帧头是一件很简单的事情,直接把unsigned char *强转为struct就行,但是在C#中,并没有提供直接从struct到byte[]的转换,这个时候就需要用到Marshal等非托管的方法了. 自定义帧 我们可以在C#中写出如下代码: [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = ,Size = )] […