[英]How to create and use static library containing resource like form/dialog in mfc c++?
[英]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.