c++ - MFC静态库和外部rc(resource)文件图标加载问题

标签 c++ mfc resources icons

我在主应用程序中从外部资源文件加载图标时遇到问题。我将尝试解释现在如何设置应用程序。主应用程序的资源包括外部对话框*.rc 和相应的*.h。链接器包括驻留在外部静态库 *.lib 中的对话框实现 (CDialog/CFormView)。

外部 *.rc 有:

IDI_MY_ICON ICON "my_icon.ico"

外部 *.h 有:

#define IDI_MY_ICON 10000

静态库 *.cpp 中的对话框实现有:

HICON MyDialog::GetNeededIcon()
{
  return AfxGetApp()->LoadIcon(IDI_MY_ICON);
}

我认为它应该与外部 *.rc 文件位于同一个文件夹中。我也尝试将它们放在主应用程序文件夹中,但应用程序仍未加载它们。有人可以向我解释在哪里搜索 my_icon.ico 吗?

附言- 文件内容只是此处的示例。

最佳答案

AfxGetApp()->LoadIcon(IDI_MY_ICON); 尝试从当前应用程序 (exe) 加载图标。

如果你想从另一个模块加载它,你要么必须记住从 LoadLibrary 返回的句柄,要么调用 GetModuleHandle 再次检索它。

关于c++ - MFC静态库和外部rc(resource)文件图标加载问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5380065/

相关文章:

wpf - 在资源中创建一个控件,然后在XAML WPF中重用它

C++虚类、子类和自引用

c++ - 谁能用几个术语解释一下 DYNAMIC_CLASS?

c++ - 如何获取MFC运行时创建的Treeview(CTreeCtrl)的Click事件?

c++ - 为什么未按顺序从 CMap 中检索元素

http - 为什么资源标识对于 RESTful Web 服务的接口(interface)如此重要?

php - curl_close() : is not a valid cURL handle resource . .. 但为什么呢?

c++ - 如果 a 是 cv::Mat 和 cv::Mat b=a.row(1),那么这两个 cv::Mat 实例有什么区别?

c++ - 将Directx 11后台缓冲区渲染到Direct2d上

c++ - MFC RIbbon - 同一面板上的多个 CMFCRibbonComboBox,响应对任何 onComboBox 执行的选择项操作