似乎 EasyX 无法从 ICON 资源文件中读取图像

1

环境:Visual Studio 2022 | EasyX_20220610

我在项目中导入了两个资源图像,分别是 ico 类型和 png 类型。导入后的 rc 文件片段如下:

IDI_ICON1               ICON                    "icon.ico"
IDB_PNG1                PNG                     "test.png"

我的代码:

#include <easyx.h>
#include "resource.h"

int main()
{
	IMAGE imgICON,imgPNG;
	loadimage(&imgICON, L"ICON", MAKEINTRESOURCE(IDI_ICON1));
	loadimage(&imgPNG, L"PNG", MAKEINTRESOURCE(IDB_PNG1));

	return 0;
}

调试发现 imgICON 读取失败,imgPNG 读取成功。

请问怎样才能正确读取 ico 资源文件?

ava
huidong

2022-7-12

1

在 VS2022 里面,导入图标以后,图标所属的分类 Icon 是一个特殊的分类,不能直接当字符串使用。

用文本编辑的方式修改 Resource.rc,找到图标资源部分:

IDI_ICON1               ICON                    "icon.ico"
IDB_PNG1                PNG                     "test.png"

将 ICON 修改为 MYICON(或其它非预定义的分类):

IDI_ICON1               MYICON                  "icon.ico"
IDB_PNG1                PNG                     "test.png"

然后再用:

loadimage(&imgICON, L"MYICON", MAKEINTRESOURCE(IDI_ICON1));

就可以成功加载图标资源。

ava
慢羊羊

2022-7-15

技术讨论社区