DLL 仅在 qt 调试器中由应用程序加载,但不是独立加载

Posted

技术标签:

【中文标题】DLL 仅在 qt 调试器中由应用程序加载,但不是独立加载【英文标题】:Dll loaded by application only in qt debugger but not independently 【发布时间】:2018-05-28 20:24:40 【问题描述】:

清理并重新安装 Windows 7 后,我安装了 qt 5.11。但是,我使用 qt 3 开发的旧插件 (dll) 不再被应用程序识别。但应用程序在调试器模式下识别 dll。 我曾尝试将调试器加载到 dll 位置的依赖库复制,但这没有奏效。我还删除了对 qtcore 等的引用,但即使这样也没有用。我不知道我错过了什么。该插件在旧版本的 qt 中运行良好,但在新版本的 qt 中运行良好。 感谢您提供的任何帮助。

【问题讨论】:

有什么错误吗?警告?什么是输出? 没有错误或警告。 dll编译良好。但是程序根本无法识别 dll。但是,当我在调试器中运行 dll 时,应用程序会识别 dll。 【参考方案1】:

Qt 不提供主要版本之间的二进制向后兼容性。 您必须更新(== 使用 Qt5 编译和构建您的插件 dll)才能使其正常工作。

查看此页面 https://wiki.qt.io/Qt-Version-Compatibility#Binary_Compatibility_Guidelines

【讨论】:

以上是关于DLL 仅在 qt 调试器中由应用程序加载,但不是独立加载的主要内容,如果未能解决你的问题,请参考以下文章

Qt - 启用 Qml 调试。仅在安全的环境中使用

Qt 应用程序无法加载自定义插件调试库

无法仅在特定系统上加载 DLL

仅在需要时加载 DLL [重复]

为什么Qt的libstdc ++版本 - 6.dll有效,但不是MinGW?

Qt动态加载MySQL驱动程序