在 Windows 上打开一个二进制文件进行解析,我该用 c++的 api 还是 Windows 提供的 win32api 啊

2021-11-02 15:47:03 +08:00
 proxytoworld

在 c++可以用 std::ifstream 打开文件读写,也可以使用 win32 的,我该用那个好点...

1221 次点击
所在节点    问与答
4 条回复
ysc3839
2021-11-02 17:54:47 +08:00
都可以,看你喜欢。只读的话有的时候用内存映射可能更方便。
forcecharlie
2021-11-02 19:35:37 +08:00
elfive
2021-11-02 19:42:40 +08:00
看情况:
有跨平台需求可能标准 c/c++的比较适合,但是会在部分情况下遇到困难,例如字符编码。

没有跨平台需求,用 Win32 API 显然是个比较合适的选择,解决了起码字符编码的问题,但是我个人认为 Win32 API 接口设计用起来不是很舒服,需要查阅文档编写。同时 Win32 API 数量多,有时候还有个 Ex 版本的,会让初学者很难找到并使用合适的接口。
jackmod
2021-11-02 20:48:22 +08:00
自用的话无所谓,哪个顺手用哪个,我更喜欢 <cstdio> 简单快速
如果是给别人用的话,至少会考虑以下几个问题:
32 位 xp 上运行:SDK7.1
文件体积超过 2GB:CreateFile
文件名不只有半角英数:CreateFileW
内存比较小:CreateFileMapping

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/812481

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX