首页 文章

如何使用SDL_LoadBMP编译资源文件

提问于
浏览
0

我必须在Windows 7中使用NetBeans 7.1.1 for C,我正在使用SDL编写应用程序 . 我可以让SDL_LoadBMP与外部文件一起正常工作,但我希望我的资源可以作为EXE的一部分进行编译 .

我发现你可以构建RES文件链接到EXE,所以我尝试通过添加以下内容来修改我的构建脚本:

.build-pre:
    windres player.res player.o

然后在项目的链接器设置中,我将player.o添加到库中 . 这编译得很好,但现在我无法弄清楚如何引用这个.o文件 . 我尝试使用FindResource()和LoadResource(),他们总是给我NULL . 我已经包含了#define PLAYER_IMAGE 1000的头文件 . 代码如下所示:

HRSRC res = FindResource(GetModuleHandle(NULL), MAKEINTRESOURCE(PLAYER_IMAGE), RT_BITMAP);

if(!res) {
    fprintf(stderr, "The resource couldn't be found.\n");
}

HGLOBAL res_handle = LoadResource(NULL, res);
if(!res_handle) {
    fprintf(stderr, "The resource couldn't be loaded.\n");
}

char* res_data = (char*)LockResource(res_handle);

我是在正确的轨道上吗?如果是这样,我做错了什么?如果不是我应该做什么呢?

1 回答

  • 0

    windres用于将.rc文件编译为.res文件,然后必须将.res和.o文件与ld链接在一起 . 无论如何,你是在正确的轨道上,你只需要使用SDL_RWFromConstMem()来从资源中获取数据 .

相关问题