如何使用BinaryReader类使用C#读取自定义文件(C ++)?

时间:2014-10-08 21:29:24

标签: c# c++ qt binaryreader

好吧,因此,对于个人项目,我被赋予了编写工具的任务,以便使用从C ++使用C#序列化的自定义文件。

我想过使用BinaryReader类并且有效地认为这是正确的路径,但是我怀疑如果没有用于序列化文件的结构我就无法得到任何有用的信息,所以我要求它们。问题是我发送的信息是包含所有qint32字段的2个结构名称(是的,它们使用Qt库)。

说实话,我完全迷失了这一点,我也想知道qint32是否是Qt的int32代表,或者它是否与它有效不同。

问候。

1 个答案:

答案 0 :(得分:2)

根据此question and answerqint32的长度为32位。

这意味着您可以使用BinaryReader.ReadInt32()来读取数字,假设它们是小端。

qglobal.h中qint32的定义如下:

typedef int qint32;                /* 32 bit signed */

C ++标准没有指定数字的字节顺序,而是指定程序编译的体系结构。 x86和x64处理器是小端。请注意,可以更改数字的字节顺序(例如,通过使用htonl功能)。要获得明确的答案,您应该询问生成该文件的人。