【问题标题】:Can't load icon from resources using LoadIcon WINAPI无法使用 LoadIcon WINAPI 从资源中加载图标
【发布时间】: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


【解决方案1】:

使用链接器选项中的其他依赖项包含静态库的 .res 文件。请注意,静态库中的资源 ID 可能与您项目的 resource.h 中定义的 ID 冲突

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-08
    • 2012-07-26
    • 2013-08-26
    • 2015-03-25
    • 2012-01-20
    • 1970-01-01
    • 1970-01-01
    • 2012-12-13
    相关资源
    最近更新 更多