【发布时间】:2015-01-31 20:58:45
【问题描述】:
我将 Indy 与 Delphi 一起用于 FTP 或电子邮件。使用 Delphi XE2,我部署了 ssleay32.dll 和 libeay32.dll,我的应用程序对我的客户正确运行。
但是自从升级到XE6后,有的客户端报错说找不到msvcr100.dll。
是要交付的新dll吗?
【问题讨论】:
标签: delphi dll indy delphi-xe6
我将 Indy 与 Delphi 一起用于 FTP 或电子邮件。使用 Delphi XE2,我部署了 ssleay32.dll 和 libeay32.dll,我的应用程序对我的客户正确运行。
但是自从升级到XE6后,有的客户端报错说找不到msvcr100.dll。
是要交付的新dll吗?
【问题讨论】:
标签: delphi dll indy delphi-xe6
msvcr100.dll 是 MSVC 2010 运行时。显然,您的特定 OpenSSL DLL 依赖于它。许多程序会安装 MSVC 运行时,因此很常见的发现有些机器已经安装了它,而另一些则没有。这就是这里发生的事情。
如果您分发可从 Fulgan 站点获取的 OpenSSL DLL,则无需分发任何其他运行时。这些 DLL 不依赖于 MSVC 运行时。 Indy 页面有一个链接:http://www.indyproject.org/sockets/ssl.en.aspx
您应该对您分发的 OpenSSL DLL 产生浓厚的兴趣,因为存在潜在的安全问题。最近,在 Indy 所依赖的 OpenSSL 实现中发现了一些惊人的漏洞。
【讨论】:
在您的帮助下,我找到了解决方案。
使用 XE6 提供的 ssleay32.dll 和 libeay32.dll,我需要部署 msvcr100.dll。 ssleay32.dll 和 libeay32.dll 在版本 1.0.0.7 中(http://indy.fulgan.com/SSL/ 中的 1.0.0g)
使用它的最后一个版本(1.0.1.10(http://indy.fulgan.com/SSL/ 中的 1.0.1j)我不需要部署 msvcr100.dll。
【讨论】: