我正在创建一个Qt应用程序,我需要在其中使用MFC DLL!(我正在使用VS2008)
Qt 应用程序项目属性包括:配置类型:应用程序使用标准窗口库
这样,当我尝试使用 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.
有人有什么想法吗?
谢谢!
我想问题是你的Qt-dll是使用另一个版本的C++运行时库构建的,而不是MFC-dll。 使用具有不同运行时的两个 DLL 会导致在启动程序时崩溃。
我不知道你是否可以从源代码重建Qt,这将是我唯一的猜测如何解决这个问题。您究竟需要从 MFC 库中获得什么?也许还有另一种方法可以做你想做的事。