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

发布于 2024-11-06 09:51:02 字数 447 浏览 2 评论 0原文

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

qt应用程序项目属性是: 配置类型:应用程序 使用标准Windows库

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

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

如果我将 mfc 属性更改为 在共享 DLL 中使用 MFC 应用程序构建, 但是当我尝试运行它时,我得到

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

有人有什么想法吗?

谢谢!

i am creating a Qt application and i need to use a mfc dll in it!
(i am using vs2008)

the qt application project properties are:
Configuration Type: Application
Use standard windows libraries

This way, when i try to use the mfc dll i get (during build):

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]

If i change the mfc property to Use MFC in a shared DLL the application builds,
but when i try to run it, i get

Unhandled exception at 0x78a5b48a (mfc90ud.dll) in myApplication.exe: 0xC0000005: Access violation reading location 0x00000000.

any ideas anyone?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一直在等你来 2024-11-13 09:51:02

我猜问题在于您的 Qt-dll 是使用 MFC-dll 之外的另一个版本的 C++ 运行时库构建的。使用两个具有不同运行时间的 DLL 会导致启动程序时崩溃。

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

I guess the problem is that your Qt-dll is built with another version of the C++ runtime libraries than the MFC-dll. Using two DLLs with different runtimes causes a crash when you start your program.

I don't know if you can rebuild Qt from the sources, this would be my only guess how to solve this. What exactly do you need from the MFC library? Perhaps there's another way to do what you want.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文