一、c#结构体
1、定义与C++对应的C#结构体
在c#中的结构体不能定义指针,不能定义字符数组,只能在里面定义字符数组的引用。
C++的消息结构体如下:
//消息格式 4+16+4+4= 28个字节
struct cs_message{
u32_t cmd_type;
char username[16];
u32_t dstID;
u32_t srcID;
};
C#定义的结构体如下:
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct my_message
{
public UInt32 cmd_type;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 16)]
public string username;

本文介绍了如何在C#中定义与C++结构体对应的结构体,并展示了如何进行结构体与字节流之间的转换。通过Converter类的StructToBytes和BytesToStruct方法,实现了对象到字节数组以及字节数组到对象的转换,便于在UDP通信中的数据传输。
353

被折叠的 条评论
为什么被折叠?



