【发布时间】:2016-09-09 21:05:04
【问题描述】:
我有一个在 C# 中包含多个变量的对象,该对象被编组为二进制格式并通过套接字连接发送到 C++ 应用程序。 c++ 应用程序接收 TArray 格式的二进制数据。在 C# 中序列化的字段之一是 GUID。我正在尝试反序列化数据包并填充 C++ GUID。
首先,我使用内存读取器加载二进制数据,然后转到 GUID 字段应位于的字节位置:
FMemoryReader FromBinary = FMemoryReader(TheBinaryArray, true);
FromBinary.Seek(9);
二进制中的 GUID 字段应为 16 个字节。所以我在 C++ 中创建了一个 16 字节的字段
uint32 Data[4];
并填充数据
FromBinary << Data[0];
FromBinary << Data[1];
FromBinary << Data[2];
FromBinary << Data[3];
创建一个新的 GUID
GUID guid;
现在我不知道如何用数据填充 GUID?
【问题讨论】:
标签: c++ sockets serialization marshalling