gpt4 book ai didi

c++ - 静态库中的对话框资源

转载 作者:行者123 更新时间:2023-11-28 04:08:23 26 4
gpt4 key购买 nike

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

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

尝试访问资源时,我得到 afxCurrentResourceHandle is NULL 断言。

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

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

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

最佳答案

这里的问题是静态库没有“关联的 .res 文件”。如果您尝试将带有资源的 DLL 迁移到静态库,那么您还需要“导出”资源脚本(它的 .rc 文件加上任何关联的 .rc2 文件和其他引用资源)到客户端程序!

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

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

关于c++ - 静态库中的对话框资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58306160/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com