c++ - LoadBitmap 失败 ERROR_RESOURCE_NAME_NOT_FOUND

标签 c++ winapi

我在我的 resource.h 和 .rc 文件中定义了一个位图:

#define IDB_BITMAP1                     130
IDB_BITMAP1             BITMAP  DISCARDABLE     "bitmap1.bmp"

当我尝试加载它时

hBMP = LoadBitmap(0, MAKEINTRESOURCE(IDB_BITMAP1));

失败,GetLastError() 返回 1814(或十六进制的 0x716),代表 ERROR_RESOURCE_NAME_NOT_FOUND。但是位图在那里。是因为 hInstance 吗?我认为如果资源在 .exe 中,则 0 有效,事实确实如此。

最佳答案

0 作为实例传递是错误的。 documentation说:

An application can use the LoadBitmap function to access predefined bitmaps. To do so, the application must set the hInstance parameter to NULL and the lpBitmapName parameter to one of the following values.

...... table removed......

您没有加载预定义的位图,因此需要传递包含资源的实例句柄。

关于c++ - LoadBitmap 失败 ERROR_RESOURCE_NAME_NOT_FOUND,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24445986/

相关文章:

c++ - URLDownloadToFile 失败并返回 0x800c0008 (INET_E_DOWNLOAD_FAILURE),具体取决于 URL 的长度

c++ - 适当的全屏调整窗口和 linux C++

c++ - "method injection"的这种虚拟继承使用模式是已知范例吗?

c++ - 为什么我的 Windows 桌面进程似乎立即退出而没有标准输出?

c++ - 通过 const_cast 删除 const 并调用不修改结果对象的非 const 函数是否安全?

c# - 可以在不使用托管 C++ 的情况下将 C++ dx 渲染器嵌入到 C# 应用程序中吗?

windows - 如何在不阻塞 Windows 的情况下打开文件?

c - 如何在裸事件循环中处理 WM_NCHITTEST?

c# - 如何将 .h 文件 +dll 变成某种 .Net 包装器?

c++ - Wide String vs String,它会影响 Windows C++ 中的性能吗