在Windows的Qt项目中使用OpenSSL v1.1.1

在Windows的Qt项目中使用OpenSSL v1.1.1,windows,qt,openssl,qt5,mingw,Windows,Qt,Openssl,Qt5,Mingw,我的Windows程序使用OpenSSL库通过HTTPS接收JSON数据 在QtVersion5.12.3中,使用了OpenSSL 1.0.2库,一切都很简单。 我只是把“c:\Qt\Qt5.12.3\Tools\mingw730\u 64\opt\bin\”(ssleay32.dll,libeay32.dll)中的文件放进去 将我的程序的可执行文件和一切工作(对于编译,我使用MinGW)放入文件夹中 现在随着Qt5.14.1出现了OpenSSL 1.1.1d,我不知道如何将它连接到我的程序,以

我的Windows程序使用OpenSSL库通过HTTPS接收JSON数据

在QtVersion5.12.3中,使用了OpenSSL 1.0.2库,一切都很简单。 我只是把“c:\Qt\Qt5.12.3\Tools\mingw730\u 64\opt\bin\”(ssleay32.dll,libeay32.dll)中的文件放进去 将我的程序的可执行文件和一切工作(对于编译,我使用MinGW)放入文件夹中

现在随着Qt5.14.1出现了OpenSSL 1.1.1d,我不知道如何将它连接到我的程序,以便QNetworkAccessManager 终于开始工作了。库“ssleay32.dll”、“libeay32.dll”版本1.1.1d根本不存在。 我试图将libcrypto-1_1.dll和libssl-1_1.dll库(从c:\Qt\Qt5.14.1\Tools\QtCreator\bin)放入我的exe,但没有帮助

是的,它们是32位的,但我也尝试将我的项目编译为x32

代码

qDebug () << QSslSocket :: supportsSsl () << QSslSocket :: sslLibraryBuildVersionString () << QSslSocket :: sslLibraryVersionString ();
所以。。对于Windows 10,是否可以将Qt项目连接到OpenSSL v1.1.1d-
没有重新编译Qt和没有编译OpenSSL库???

我遇到了与您相同的问题。我认为这是OpenSSL的一个问题,直到我读到之前,我将vccorlib140.dll和vcruntime140.dll复制到我的程序目录中,一切正常。

我们的预编译版本的Qt是根据比Qt安装程序本身作为dll提供的更新版本的OpenSSL构建的。虽然这在我的机器上是正常的,但当部署在干净的Windows 10上时,它无法加载,并且应用程序报告TLS错误。相反,我得到了一个更新的OpenSSL库集,这似乎是可行的

为了验证这一点,由于我没有访问客户端机器的权限,我使用Hyper-V和Microsoft自己提供的Windows 10 Professional映像运行了一个VM。我看到了问题所在,一旦我用最新的DLL重写了libcrypto和libssl DLL,应用程序就开始正常工作

  • 预编译的OpenSSL库:
  • 导致我得出这一结论的关键讨论:

这不是我的情况。我已经在系统上安装了Microsoft VC++可再发行(x64/x86)。x64-c:\Windows\System32\x32-c:\Windows\SysWOW64\vccorlib140.dll(14.23.27820.0)vcruntime140.dll(14.23.27820.0)找到解决方案了吗?我现在遇到了同样的问题。
false "OpenSSL 1.1.1d 10 Sep 2019" ""