与SSL DLL相关的问题

Tia*_*ago 0 delphi openssl

使用方法:

  • 德尔福柏林更新2
  • Indy版本10.6.2.5341
  • Websocket(sgcWebSocketClient,4.1.7.0)

我们有一个应用程序可以在某些机器上运行,而不能在其他机器上运行。环境是一样的,最近安装的Windows 10没有任何其他程序。硬件是相同的,因为我们这里有很多相等的硬件。

好吧,当我们尝试以安全方式进行连接时,使用SSL,我们会得到“无法加载SSL库”。我们没有在任何机器上安装OpenSSL(甚至是运行良好的机器)我们已经尝试了ESEGECE的支持...但是直到现在都还没有解决。

我们尝试使用regsvr32注册DLL,但出现一些错误,无法注册。这些是我们得到的消息:

已加载模块“ libeay32.dll”,但未找到入口点DllRegisterServer。请确保“ libeay32.dll”是有效的DLL或OCX文件,然后重试。

或者我们得到:

模块“ C:\ Central \ libeay32.dll”无法加载。确保二进制文件存储在指定的路径或对其进行调试,以检查二进制文件或相关的.DLL文件是否存在问题。指定的模块无法找到

DLL文件是正确的文件,因为我们从ESEGECE示例中进行复制。

我们曾经WhichFailedToLoad()弄清楚正在发生什么,但是却收到“无法加载libeay32.dll”消息。

我们还尝试使用SafeLoadLibrary()指向DLL所在位置的指针。

我们进行了测试,IdOpenSSLSetLibPath()但也没有成功。

GetLastError() 返回0。

我们在这里发现了类似的问题,尝试了如上所示的解决方案,但没有成功。

您还有其他建议吗?

Rem*_*eau 5

您不能regsvr32用来注册OpenSSL DLL,因为它们不是ActiveX / COM服务器。

假设你有两个ssleay32.dlllibeay32.dll在一起,最可能的原因libeay32.dll无法加载,因为无论是:

  • 您使用的是第三方发行版,libeay32.dll或者ssleay32.dll尚未安装其他依赖于其他DLL(例如Visual C ++运行时)的外部依赖项。使用诸如Dependency Walker之类的工具进行验证。

    尝试使用Indy的Fulgan镜像上可用的OpenSSL DLL,因为它们没有任何外部依赖关系(彼此之间除外):

    https://indy.fulgan.com/SSL/

  • 您的应用是64位,但您使用的是libeay32.dll或的32位版本,ssleay32.dll反之亦然。