首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FindResource工作,LoadBitmap不工作,磁盘工作的LoadImage

FindResource工作,LoadBitmap不工作,磁盘工作的LoadImage
EN

Stack Overflow用户
提问于 2013-08-29 02:04:35
回答 1查看 2.3K关注 0票数 3

我试图使用LoadBitmap资源文件加载图像。

我已经验证了资源是正确链接的--使用十六进制编辑器检查最终的EXE,显示位图被正确地打包在EXE中。

我还验证了位图是有效的--使用LoadImage和LR_LOADFROMFILE在运行时从磁盘加载位图很好,稍后我在将它添加到gui元素时会看到它。

我已经验证了用于访问资源的ID也是有效的-- FindResource函数查找资源,SizeofResource为位图打印准确的预期字节数。

因此,我有一个有效的链接资源、一个有效的ID和一个可加载的位图。

但是,如果我从资源而不是从磁盘加载,LoadBitmap返回NULL,LoadImage也会返回NULL。GetLastError返回0。

有什么想法吗?我是否正确地在RT_BITMAP中定义了resource.rc?

谢谢。

Resourcee.h

代码语言:javascript
复制
#define     BMP_TEST_ID         2

resource.rc

代码语言:javascript
复制
#include "resource.h" // defines BMP_TEST_ID
#define     RT_BITMAP           2 

BMP_TEST_ID RT_BITMAP "TEST24.BMP"

test.c

代码语言:javascript
复制
#include <windows.h> // defines RT_BITMAP as MAKEINTRESOURCE(2)
#include "resource.h" // defines BMP_TEST_ID

HINSTANCE instance = GetModuleHandle(NULL);
if (!instance) { /* handle error */ }

/* find a bitmap resource with the ID we want -- OK! */
HRSRC rsc = FindResource(instance, RT_BITMAP, MAKEINTRESOURCE(BMP_TEST_ID));
if (!rsc) { /* handle error */ }

/* prints the exact size of the found resource -- GIVES CORRECT OUTPUT */
printf("SizeofResource: %d\n", (int) SizeofResource(instance, rsc));

// ***** THIS BIT DOESN'T WORK *****
/* load bitmap resource -- FAIL! */
HBITMAP bitmap = (HBITMAP)LoadBitmap(instance, MAKEINTRESOURCE(BMP_TEST_ID));
if (!bitmap) { /* handle error */ }

/* load bitmap from file -- OK! */
HBITMAP bitmap2 = (HBITMAP)LoadImage (NULL, "TEST24.BMP", IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
if (!bitmap2) { /* handle error */ }

我的编译器是amd64 64-mingw32msvc-gcc 4.6.3

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-29 02:14:48

首先,您根本不必定义RT_BITMAP。它已经通过winuser.h定义为包含在您的c/cpp文件中。结果发现你在你的资源文件中并不需要它。

BITMAP资源类型将为位图文件正确分配正确的资源类型id。将位图资源声明更改为:

代码语言:javascript
复制
BMP_TEST_ID BITMAP "TEST24.BMP" 

你应该可以走了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18501199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档