我需要替换的所有 WinAPI 调用
- 创建文件,
- 读取文件,
- 设置文件指针,
- 关闭句柄
我自己的实现(通过蓝牙使用低级文件读取)。 将替换功能的代码是视频文件播放器,它已经可以与常规硬盘文件一起使用。 还需要,如果 VideoPlayer 输入中的文件是普通硬盘文件,Video Player 仍然可以播放 HDD 中的文件。
此类任务的最佳实践是什么?
最佳答案
我建议您按照以下步骤操作:
- 编写一组包装函数,例如 MyCreateFile、MyReadFile 等,它们最初只是调用相应的 API 并传递相同的参数,不加修改。
- 使用文本编辑器搜索对原始 API 的所有调用,并将它们替换为对新包装函数的调用。
- 测试应用程序是否仍然正常运行。
- 修改包装函数以满足您自己的目的。
请注意,CreateFile 是一个扩展为 CreateFileW 或 CreateFileA 的宏,具体取决于是否定义了 UNICODE。考虑使用 LPCTSTR 和 TCHAR functions这样您的应用程序就可以构建为 ANSI 或 Unicode。
请不要使用 #define,正如此处其他回复所建议的那样,因为这只会导致维护问题,而且正如 Maximilian 正确指出的那样,这不是最佳做法。
关于c++ - 如何用我自己的实现替换 MS VC++ 项目中的 WinAPI 函数调用(名称和参数集相同)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60641/