有没有人对我应该使用哪些OpenSSL DLL文件有一个明确的答案?以及它们的构建版本?或者其他任何想法?
Indy:昨天更新到最新的快照 IntraWeb:安装了股票D2007
这在Vista机器上运行,如果有任何区别的话。
谢谢! Trevor
已解决:
看起来问题是由于我的机器上有一个bpl文件引起的。
以下是我采取的步骤,以防其他人在使用D2007和预安装库时无法运行独立服务器:
现在,关于OpenSSL DLLs:
到此为止,我能够编译和运行演示和我的应用程序。
感谢所有的帮助。
Trevor
您需要 OpenSSL dlls(对我来说,版本 0.9.8i 可用,但我没有使用 Vista),您可以在此处下载获取(正如您所建议的那样,Indy dlls 与 IW9 不兼容,这是捆绑在 D2007 中的版本)。
安装后,从 system32 复制 ssleay32.dll 和 libeay32.dll 到应用程序目录。
如果仍然无法工作:
希望这能有所帮助。
编辑:完成后,您将想要将 sslversion 更改为 sslv3,并让用户关闭 v2。
我是建立上述特殊版本的IntraWeb SSL dlls的人。为了完整回答上面的问题,让我解释一下为什么需要特殊版本:
以前的Indy和IntraWeb版本使用了一个稍微修改过的OpenSSL版本。这些修改包括一些与时区计算相关的函数,这些函数在当时的Delphi或Indy中不可用。
因此,当有人使用未经修改的OpenSSL dlls(而不是Indy OpenSSL dlls)与旧版Indy或IntraWeb一起使用时,由于缺少导出项,他将收到“无法加载SSL库”的错误。
自从我们使用Delphi 2009的Indy版本以来,就不再需要进行这些更改了。这就是为什么当前的Indy版本 - 即使是Delphi 2007的SVN版本 - 与slproweb的dlls一起使用也可以正常工作(这些dlls不包括这些修改)。
但请注意,slproweb的dlls需要MS VC++运行时dlls。
为了避免这个问题,我经常为Indy创建自己的dlls:
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镜像)dll一起使用。