我一直在尝试使用SSL来处理我的IW程序,但是我一直在反对'无法加载SSL库'。我已经按照我能找到的关于这个主题的每一条建议,但仍然没有快乐。我已在本地目录和system32中尝试过建议的DLL。
有没有人对我应该使用的OpenSSL DLL有明确的答案?它们的构建是什么?还是其他任何想法?
Indy:昨天更新到最近的快照 IntraWeb:库存D2007安装
这在Vista计算机上运行,如果这有任何区别的话。
TIA,
特雷弗
答案 0 :(得分:3)
<强>解决:强>
看起来问题是我的机器上浮动的问题。
以下是我采取的步骤,以防其他人在使用D2007和预安装的库运行独立服务器时遇到困难:
现在,对于OpenSSL DLL:
此时,我能够编译并运行演示和我的应用程序。
感谢您的帮助。
特雷弗
答案 1 :(得分:2)
你需要OpenSSL dll(0.9.8i为我工作,但我没有使用Vista),你可以下载here(因为我认为你的建议,Indy dll不起作用与IW9,这是D2007捆绑的版本。)
安装完成后,将ssleay32.dll和libeay32.dll从system32复制到您的应用程序目录。
如果仍然无效:
希望这有帮助。
编辑:一旦你开始工作,你就会想要将sslversion改成sslv3,并让用户关闭v2。
答案 2 :(得分:1)
今天在Embarcadero新闻组的intraweb论坛上对同一问题的回应中,Chad Z.“Kudzu”Hower发布了this link(没有任何解释 - 只是链接)。
该页面为特殊版本的SSL库提供了this link。
希望这有帮助。
答案 3 :(得分:0)
我是构建上述IntraWeb SSL dll特殊版本的人。为了完成上述答案,让我解释一下为什么需要特殊构建:
以前的Indy和IntraWeb版本使用了稍微修改过的OpenSSL版本。修改包括与例如相关的若干功能。当时Delphi或Indy没有的时区计算。
因此,当有人使用未经修改的OpenSSL dll(不是Indy OpenSSL dll)以及较旧的Indy或IntraWeb版本时,由于缺少导出,他将收到“无法加载SSL库”错误。
由于我们在Delphi 2009中使用的Indy版本不再需要这些更改。这就是为什么当前的Indy版本 - 来自SVN,甚至包括Delphi 2007 - 与IntraWeb一起使用来自slproweb的dll(不包括这些修改)。
但请注意,slproweb dlls 确实需要MS VC ++运行时dll 。
为了规避这个问题,我经常为Indy创建一套自己的dll: ftp://ftp.fulgan.com/SSL/
截至今天,您应该可以使用此版本: ftp://ftp.fulgan.com/SSL/openssl-1.0.0d-i386-win32-rev2.zip
我的dll集不需要安装MC VC运行时。
所以可以肯定地说任何比Delphi 2009更新的Indy版本和/或相应的SVN版本都可以安全地与slproweb(带VC依赖)或我们自己的(来自fulgan mirror)dll一起使用。