【发布时间】:2015-01-12 08:53:56
【问题描述】:
为什么这行代码在visual c++中不起作用
_icon = LoadIcon(GetModuleHandle(NULL) ,MAKEINTRESOURCE(IDI_ICON1));
我检查了 rc 文件和 resource.h,图标定义在那里
rc文件
IDI_ICON1 ICON "resources\\close.ico"
资源.h
#define IDI_ICON1 101
我在静态库中使用此代码,因此 HINSTANCE 与 exe 相同,对吗?
但我总是收到 ERROR_RESOURCE_TYPE_NOT_FOUND 错误。
【问题讨论】:
-
你是否包含了静态库的 .res 文件?
-
我猜不是,应该怎么做?
-
在链接器选项中有附加依赖项。请注意,静态库中的资源 ID 可能与您项目的 resource.h 中定义的 ID 冲突
-
谢谢它的工作,你应该把它作为答案
-
这里使用
GetModuleHandle(NULL)是错误的。首先,您可以通过传递NULL来实现相同的目的。如果您仔细阅读文档,您就会知道。但其次,考虑一下如果将代码编译成 DLL 会发生什么。始终使用包含代码的模块的模块句柄。
标签: c++ visual-studio winapi