c++ - 如何在 Qt 应用程序中使用 MFC dll

标签 c++ qt dll mfc

我正在创建一个 Qt 应用程序,我需要在其中使用一个 mfc dll! (我用的是vs2008)

qt应用项目属性为: 配置类型:应用 使用标准的 Windows 库

这样,当我尝试使用我得到的 mfc dll 时(在构建期间):

fatal error C1189:#error:使用/MD[d](CRT dll 版本)构建 MFC 应用程序需要 MFC 共享 dll 版本。请#define _AFXDLL 或不要使用/MD[d]

如果我将 mfc 属性更改为 Use MFC in a shared DLL 应用程序构建, 但是当我尝试运行它时,我得到了

myApplication.exe 中 0x78a5b48a (mfc90ud.dll) 处的未处理异常:0xC0000005:访问冲突读取位置 0x00000000。

有什么想法吗?

谢谢!

最佳答案

我想问题是你的 Qt-dll 是用另一个版本的 C++ 运行时库而不是 MFC-dll 构建的。当您启动程序时,使用两个具有不同运行时的 DLL 会导致崩溃。

我不知道您是否可以从源代码重建 Qt,这是我唯一的猜测如何解决这个问题。 MFC 库究竟需要什么?也许还有另一种方法可以做你想做的事。

关于c++ - 如何在 Qt 应用程序中使用 MFC dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5963067/

相关文章:

c++ - 将char数组传递给exec *()系列函数后,如何释放它们的内存

c++ - Qt Creator - calloc 因大内存而失败

linux - 在 RHEL 6 x64 中配置网络音频系统 [NAS] 时出错

c++ - 如何解析文件路径

python ctype 递归结构

c# - 如何将 .NET 4.0 DLL 转换为 .NET 3.5 DLL

dll - Inno 脚本从互联网异步下载文件

c++ - 为什么友元函数优于运算符<<的成员函数

c++ - 错误 : expected initializer before ‘:’ token

C++ 理解递归函数