windows 安装和注册 win32 OpenSSL 库

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/906310/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-09 06:24:56  来源:igfitidea点击:

Installing and registering win32 OpenSSL libraries

windowsqtdllinstallationopenssl

提问by Maleev

My application depends on OpenSSL libraries (through Qt networking modules; you can't compile it into Qt statically, because of legal issues)

我的应用程序依赖于 OpenSSL 库(通过 Qt 网络模块;由于法律问题,您无法将其静态编译为 Qt)

There's this project - Win32 OpenSSL

有这个项目 - Win32 OpenSSL

Seems like all I need is to copy the two dlls into System32 and register them.

似乎我需要的只是将两个 dll 复制到 System32 并注册它们。

copy ssleay32.dll %WINDIR%\System32\ssleay32.dll
copy libeay32.dll %WINDIR%\System32\libeay32.dll
regsvr32.exe /s %WINDIR%\System32\ssleay32.dll
regsvr32.exe /s %WINDIR%\System32\libeay32.dll

And indeed, that has worked on a couple of machines in the office (my app began working correctly with https after the operation). Those have lot's of stuff installed on them, so it may interfere.

事实上,这已经在办公室的几台机器上工作了(我的应用程序在操作后开始使用 https 正常工作)。那些安装了很多东西,所以它可能会干扰。

Still it does not work on a clean virtual machine under VMWare.

它仍然无法在 VMWare 下的干净虚拟机上运行。

Though when I install Tortoise SVN under it (which ships with OpenSSL too) everything gets fine. What is the proper way of installing openssl into system?

虽然当我在它下面安装 Tortoise SVN(它也与 OpenSSL 一起提供)时,一切都会好起来。将openssl安装到系统中的正确方法是什么?

note: Qt networking module has it's own certificate authorities list.

注意:Qt 网络模块有它自己的证书颁发机构列表。

采纳答案by Assaf Lavie

Maybe there are further dependencies that these two DLLs have that SVN has installed for you...

也许这两个DLL还有SVN为您安装的其他依赖项...

Trying using depends to see which DLLs the OpenSSL DLLs use, and make sure those are installed on your clean VMware.

尝试使用取决于查看 OpenSSL DLL 使用哪些 DLL,并确保这些 DLL 安装在干净的 VMware 上。

回答by Remy Lebeau

Just put the DLLs in your app's installation folder. There is nothing to register (and you cannot use regsvr32 anyway, as OpenSSL does not implement ActiveX/COM servers, which is what regsvr32 is meant for).

只需将 DLL 放在应用程序的安装文件夹中即可。没有什么可注册的(并且您无论如何都不能使用 regsvr32,因为 OpenSSL 没有实现 ActiveX/COM 服务器,这正是 regsvr32 的用途)。

回答by unda91

You can use Dependency Walker to check what dependency your application has and which ones it has not been able to resolve.

您可以使用 Dependency Walker 检查您的应用程序具有哪些依赖项以及它无法解决哪些依赖项。

http://www.dependencywalker.com/

http://www.dependencywalker.com/

Just drag your application to Dependency Walker and on the left pane you will see all the dlls that it needs to run.

只需将您的应用程序拖到 Dependency Walker,您就会在左侧窗格中看到它需要运行的所有 dll。

回答by Candid

You are most likely dependent upon libsasl.dll, which ships with tortoise-svn!

您很可能依赖于与 tortoise-svn 一起提供的 libsasl.dll!