静态库中的对话框资源

Dialog resources in a static library

本文关键字:对话框 资源 静态      更新时间:2023-10-16

我的静态库中的对话框和图标资源有问题。 我用Visual Studio 2008创建了一个MFC静态库。

我正在从Win32应用程序中调用静态库中的Func(),它尝试在静态库中启动MFC对话框。

当尝试访问资源时,我得到 afxCurrentResourceHandle 是空断言。

我将Func()中的这一行AFX_MANAGE_STATE(AfxGetStaticModuleState());添加为第一行。但这并没有帮助。

我只需要使用静态库。根据要求,我不应该使用 dll。

请帮助我如何从非MFC应用程序启动MFC静态库中的对话框。

这里的问题是静态库没有"关联的 .res 文件"。如果您尝试将包含资源的 DLL 迁移到静态库,则还需要将资源脚本(其.rc文件以及任何关联的.rc2文件和其他引用的资源("导出"到客户端程序

因此,就像您在.cpp源代码中有一个#include "module.h"行一样,您还需要在程序的主.rc文件中(或者至少在它包含的文件中(中有一个#include "module.rc"

注意:人们尝试过的其他修复程序,例如与额外的(预编译的(.res文件显式链接将不起作用!尽管二进制.res文件的内部结构与任何其他.obj文件非常相似,但链接器将只包含一个!