【发布时间】:2013-03-30 14:21:56
【问题描述】:
我正在尝试通过LoadImage 函数从win32 中的相对文件路径加载文件。我使用的 URL 确实存在,出于测试目的,使用与资源文件中添加的位图相同的 URL。
Image = (HBITMAP)LoadImage(NULL, "..\\..\\Images\\Mage default.bmp",
IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
但是,它返回错误代码 2,表示找不到文件。我已经用谷歌搜索了这个问题,并参考了 MSDN,但我找不到任何说明如何使用 LoadImage 的相对文件路径。
LoadBitmap 和预定义的位图似乎可以正常工作,但在这种情况下似乎不起作用。任何帮助将不胜感激
【问题讨论】:
-
在很多情况下不建议使用反向相对寻址。它使程序员的管理路径复杂化。
-
依靠正确设置的默认工作目录永远不会停止伤害。当它在正常安装位置的用户机器上运行时,这将不起作用。没有 c:\program files\images 目录。从 GetModuleFileName() 生成绝对路径名,传递 NULL 以找出 EXE 的存储位置。
-
@HansPassant 好的,非常感谢。将上面生成的相对路径和绝对路径结合起来,应该很容易生成绝对文件路径。