如何在 Qt 应用程序中使用 MFC dll
Posted
技术标签:
【中文标题】如何在 Qt 应用程序中使用 MFC dll【英文标题】:How to use a MFC dll in a Qt application 【发布时间】:2011-05-11 10:55:32 【问题描述】:我正在创建一个 Qt 应用程序,我需要在其中使用一个 mfc dll! (我用的是vs2008)
qt 应用程序项目属性为: 配置类型:应用 使用标准的 windows 库
这样,当我尝试使用我得到的 mfc dll 时(在构建期间):
fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]
如果我将 mfc 属性更改为 Use MFC in a shared DLL
应用程序构建,
但是当我尝试运行它时,我得到了
Unhandled exception at 0x78a5b48a (mfc90ud.dll) in myApplication.exe: 0xC0000005: Access violation reading location 0x00000000.
有什么想法吗?
谢谢!
【问题讨论】:
【参考方案1】:我猜问题是你的 Qt-dll 是用另一个版本的 C++ 运行时库而不是 MFC-dll 构建的。使用具有不同运行时的两个 DLL 会在您启动程序时导致崩溃。
我不知道你是否可以从源代码重建 Qt,这将是我唯一的猜测如何解决这个问题。您究竟需要 MFC 库提供什么?也许还有另一种方法可以做你想做的事。
【讨论】:
以上是关于如何在 Qt 应用程序中使用 MFC dll的主要内容,如果未能解决你的问题,请参考以下文章