Итак, для личного проекта мне было поручено написать инструмент для использования собственного файла, который был сериализован из C ++ с использованием C #.
Я думал об использовании BinaryReader
Это был правильный путь, но, как я и подозревал, я не смог получить никакой полезной информации без структур, используемых для сериализации файла, поэтому я попросил их. Проблема в том, что информация, которую мне прислали, состоит из двух структурных имен, содержащих все qint32
поля (да, они используют библиотеку Qt).
Честно говоря, я полностью потерян с этим, также я хотел бы знать, если qint32
это Qt’s int32
представление или если оно эффективно отличается от него.
С уважением.
Согласно этому вопрос и ответ qint32
длиной 32 бита.
Это означает, что вы можете использовать BinaryReader.ReadInt32()
читать числа, предполагая, что они немного порядковые.
Определение для qint32
из qglobal.h выглядит следующим образом:
typedef int qint32; /* 32 bit signed */
Стандарт C ++ не определяет порядковый номер чисел, а архитектура, на которой скомпилирована программа. Процессоры x86 и x64 имеют младший порядок байтов. Обратите внимание, что можно изменить порядковый номер числа (например, используя htonl
функция). Чтобы получить точный ответ, вы должны спросить, кто бы ни генерировал файл.