我在主应用程序中从外部资源文件加载图标时遇到问题。我将尝试解释现在如何设置应用程序。主应用程序的资源包括外部对话框*.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/