无法在动态链接库Qt5Cored.dll中找到过程入口点

时间:2018-03-05 16:22:59

标签: c++ visual-studio qt dll linker

The procedure entry point could ?registerNormalizedType not be located in dynamic link library Qt5Cored.dll

我刚建立了我应该修复的项目。我仔细检查了加载了正确的DLL - 项目使用Qt 5.3.0,dll从5.3.0目录加载。我不确定问题出在哪里。我的项目是否使用了不正确的Qt标头?或者DLL构建不正确吗?

我正在使用Visual Studio 2017构建Debug。这些DLL也是使用visual studio构建的。我尝试过Vidual Studio 2010,因为它是2010年的项目,但错误是一样的。

3 个答案:

答案 0 :(得分:1)

您处于发布或调试模式吗? QtCoded.dll与调试配置文件有关。

另一种解释可能是你的Qt是如何构建的。 如果我没记错,Qt是用msvc2015构建的,所以你必须使用msvc2015用Visual Studio构建你的exe,并且不可能在之前或之后使用msvc版本。 请记住,您不能使用mv使用msvc构建的Qt框架。

换句话说,我建议您查看您使用Visual Studio的msvc版本以及哪个版本的Qt框架。

问候。

答案 1 :(得分:0)

就我而言,问题出现了:

其中一个子项目被意外配置为使用Qt 5.6.1,而其余的解决方案使用5.3.0。我通过在依赖walker中打开结果二进制文件找到了。

答案 2 :(得分:0)

我刚刚在 QT 4 上遇到了同样的问题。

在这篇文章中找到了解决方案:The procedure entry point could not be found

<块引用>

我遇到了同样的问题,就我而言,这是因为我的计算机上安装了同一个库的两个版本。

<块引用>

最后,问题是我将我的程序链接到新的 LIB 文件,而我的 PATH 指向旧的 DLL。当库版本号不包含在 LIB 或 DLL 文件名中时,很容易混淆版本。

我的情况是,我使用的是旧版 QT 中的 QtCored4.dll 和其他。解决方案是直接从我用于构建应用程序的 QT 安装目录中复制 DLL(因为它是由我的 QTDIR 环境变量设置的):C:\Qt\4.8.7\bin 到我的应用程序目录。