如何使用BinaryReader类使用C#读取自定义文件(C++)
本文关键字:文件 自定义 C++ 读取 BinaryReader 何使用 | 更新日期: 2023-09-27 18:25:56
好吧,对于一个个人项目,我的任务是编写一个工具,以使用从C++使用C#序列化的自定义文件。
我曾想过使用BinaryReader
类,实际上这是正确的路径,但由于我怀疑如果没有用于序列化文件的结构,我就无法获得任何有用的信息,所以我请求使用它们。问题是,我收到的信息是两个包含所有qint32
字段的结构名称(是的,它们使用Qt库)。
老实说,我完全不明白这一点,我也想知道qint32
是否是Qt的int32
表示,或者它是否与之有效不同
谨致问候。
根据这个问答,qint32
的长度为32位。
这意味着您可以使用BinaryReader.ReadInt32()
读取数字,假设它们是小端序。
qglobal.h中qint32
的定义如下:
typedef int qint32; /* 32 bit signed */
C++标准没有指定数字的endianness,相反,编译程序的体系结构是这样做的。x86和x64处理器是little-endian。注意,可以改变数字的字节序(例如,通过使用htonl
函数)。为了得到一个明确的答案,你应该询问生成文件的人。