指定Qt查找OpenSSL DLL的位置

时间:2018-05-14 10:59:30

标签: c++ qt dll manifest

我正在开发一个使用QSslSocket与远程服务器建立安全连接的软件。我使用的所有DLL(包括Qt的预编译DLL)都存储在" DLL"子文件夹。 我打算把" libeay32.dll"和" ssleay32.dll"进入该DLL子文件夹。因此,我复制了文件并相应地更新了我的清单文件。

<file name="libeay32.dll"/>
<file name="ssleay32.dll"/>

由于某些原因我无法解释,我的应用程序仍然找到&#34; libeay32.dll&#34;和&#34; ssleay32.dll&#34;在其他地方,并且因为那些是错误的版本而无法工作。

如果我将这些DLL直接放入应用程序目录中,它可以正常工作,但这不是我想要做的。

编辑:出于某种原因,它适用于其他DLL(例如我也使用的OpenCV)。

如何告诉Qt从我期望的文件夹中获取这些DLL?

1 个答案:

答案 0 :(得分:0)

您需要将DLL子目录添加到Windows使用的dll搜索路径中。您可以使用SetDllDirectory来实现此目的,AddDllDirectory指定Windows搜索dll的自定义目录。

如果您有多个包含DLL的目录,请改用this WikiDot page