Как использовать класс BinaryReader для чтения пользовательского файла (C ++) с использованием C #?

Итак, для личного проекта мне было поручено написать инструмент для использования собственного файла, который был сериализован из C ++ с использованием C #.

Я думал об использовании BinaryReader Это был правильный путь, но, как я и подозревал, я не смог получить никакой полезной информации без структур, используемых для сериализации файла, поэтому я попросил их. Проблема в том, что информация, которую мне прислали, состоит из двух структурных имен, содержащих все qint32 поля (да, они используют библиотеку Qt).

Честно говоря, я полностью потерян с этим, также я хотел бы знать, если qint32 это Qt’s int32 представление или если оно эффективно отличается от него.

С уважением.

-1

Решение

Согласно этому вопрос и ответ qint32 длиной 32 бита.

Это означает, что вы можете использовать BinaryReader.ReadInt32() читать числа, предполагая, что они немного порядковые.

Определение для qint32 из qglobal.h выглядит следующим образом:

typedef int qint32;                /* 32 bit signed */

Стандарт C ++ не определяет порядковый номер чисел, а архитектура, на которой скомпилирована программа. Процессоры x86 и x64 имеют младший порядок байтов. Обратите внимание, что можно изменить порядковый номер числа (например, используя htonl функция). Чтобы получить точный ответ, вы должны спросить, кто бы ни генерировал файл.

2

Другие решения


По вопросам рекламы [email protected]