У меня есть структура, которая представляет пакет проводного формата. В этой структуре есть массив других структур. У меня есть универсальный код, который обрабатывает это очень хорошо для большинства случаев, но этот случай массива структур вызывает маршаллер для цикла.
Небезопасный код не нужен, так как я не могу получить указатель на структуру с массивом (argh!).
Я могу видеть из этой статьи проекта кода , что существует очень хороший, общий подход с использованием 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;
}
};
Теперь, если бы у меня была структура -> версия байтового массива / записи, я бы установил! Заранее спасибо!