使用LoadImage的相对文件路径

时间:2013-03-30 14:21:57

标签: c++ winapi

我正在尝试通过LoadImage函数从win32中的相对文件路径加载文件。我正在使用的URL确实存在,出于测试目的,使用与资源文件中添加的位图相同的URL。

Image = (HBITMAP)LoadImage(NULL, "..\\..\\Images\\Mage default.bmp",
                           IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);

但是,它返回错误代码2,表示找不到该文件。我已经详细搜索了这个问题,并提到了MSDN,我找不到任何说明如何使用LoadImage的相对文件路径。

它似乎可以与LoadBitmap和预定义的位图一起使用,但在这种情况下似乎不起作用。任何帮助将不胜感激

3 个答案:

答案 0 :(得分:2)

首先,检查文件是否存在,当前目录是您期望的目录。

此外,您可以使用GetFullPathName之类的函数将相对路径转换为绝对路径。

答案 1 :(得分:1)

您拥有的相对路径是根据您的进程/运行时工作目录计算的,而不是在编译时的静态文件位置计算的。

答案 2 :(得分:1)

这可能是一篇过时的文章,但是偶然发现了这个问题(在我的情况下是头文件)并找到了答案,这里是:

如果引用相对路径,则第一个目录前面不能加反斜杠。

在此示例中,该行将是:

(HBITMAP)LoadImage(NULL,“ Images \\ Mage default.bmp”,...