【问题标题】:How to use BinaryReader class to read a custom file (C++) using C#? [closed]如何使用 BinaryReader 类使用 C# 读取自定义文件 (C++)? [关闭]
【发布时间】:2014-10-08 21:29:24
【问题描述】:

好的,所以,对于一个个人项目,我的任务是编写一个工具来使用一个使用 C# 从 C++ 序列化的自定义文件。

我曾想过使用BinaryReader 类,这实际上是正确的路径,但我怀疑如果没有用于序列化文件的结构,我无法获得任何有用的信息,所以我要求提供它们。问题是我收到的信息是 2 个结构名称,其中包含所有 qint32 字段(是的,它们使用 Qt 库)。

老实说,我对此完全迷失了,我也想知道 qint32 是否是 Qt 的 int32 表示,或者它是否与它实际上不同。

问候。

【问题讨论】:

  • C++Qt 标记您的问题可能会从了解该框架的人那里获得更多结果!
  • 好的,谢谢。

标签: c# c++ qt binaryreader


【解决方案1】:

根据这个question and answer qint32 的长度是32位。

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

qglobal.h 中qint32 的定义如下:

typedef int qint32;                /* 32 bit signed */

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

【讨论】:

  • endianness 怎么样?一样吗?..
  • @L.B 我添加了更多信息。如果它来自 x86 或 x64 机器,它可能是 little endian。
  • 好的,谢谢,我试试看!
猜你喜欢
  • 2020-12-31
  • 2021-03-29
  • 2020-09-15
  • 2017-08-17
  • 2014-09-14
  • 1970-01-01
  • 1970-01-01
  • 2019-08-16
  • 2018-05-17
相关资源
最近更新 更多