繁体   English   中英

MFC静态库和外部rc(资源)文件图标加载问题

[英]MFC static library and external rc(resource) file icon loading problem

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

外部* .rc有:

IDI_MY_ICON ICON "my_icon.ico"

外部* .h有:

#define IDI_MY_ICON 10000

静态lib * .cpp中的对话实现具有:

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

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

PS - 文件内容仅为示例。

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

如果要从其他模块加载它,则必须记住从LoadLibrary返回的句柄,或者调用GetModuleHandle再次检索它。

您的.rc文件由rc.exe编译,以将图标嵌入您的可执行文件中。 rc.exe使用包含路径来查找资源。 这由INCLUDE环境变量或rc.exe的/ I选项指定。 如果“my_icon.ico”不起作用,请尝试移动文件或更改包含路径。

澄清:

rc.exe将.rc文件编译成.res文件,但它的链接器实际嵌入到可执行文件中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM