我有一个代表有线格式数据包的结构。在这个结构中是其他结构的数组。对于大多数情况,我有通用代码可以很好地处理这个问题,但是这个结构数组的情况正在将编组器抛出一个循环。
不安全的代码是不行的,因为我无法获得指向带有数组的结构的指针(啊!)。
我可以从这篇 codeproject 文章中看到,有一种非常好的通用方法,涉及 C++/CLI,类似于...
public ref class Reader abstract sealed
{
public:
generic <typename T> where T : value class
static T Read(array<System::Byte>^ data)
{
T value;
pin_ptr<System::Byte> src = &data[0];
pin_ptr<T> dst = &value;
memcpy((void*)dst, (void*)src,
/*System::Runtime::InteropServices::Marshal::SizeOf(T::typeid)*/
sizeof(T));
return value;
}
};
现在,如果只有结构-> 字节数组/写入器版本,我将被设置!提前致谢!