【问题标题】:Delphi deploy msvcr100.dll XE6Delphi 部署 msvcr100.dll XE6
【发布时间】:2015-01-31 20:58:45
【问题描述】:

我将 Indy 与 Delphi 一起用于 FTP 或电子邮件。使用 Delphi XE2,我部署了 ssleay32.dll 和 libeay32.dll,我的应用程序对我的客户正确运行。

但是自从升级到XE6后,有的客户端报错说找不到msvcr100.dll。

是要交付的新dll吗?

【问题讨论】:

    标签: delphi dll indy delphi-xe6


    【解决方案1】:

    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 实现中发现了一些惊人的漏洞。

    【讨论】:

    • 好的,对你来说,XE2 和 XE6 的实现没有区别?
    • 我不明白那个评论
    • 我在 XE2 中构建的没有 msvcr100.dll 的程序适用于 700 个客户。由于内置 XE6,我在 de msvcr100.dll 上有错误。
    • 您的问题表明这是因为您交付的 Indy DLL 依赖于 msvcr100.dll。不是这样吗?还是您的程序有我们不知道的额外依赖项?
    • 我建议您首先使用一些依赖扫描程序来检查您的应用程序依赖于哪些动态链接库。我建议使用 PE Explorer (heaventools.com/overview.htm),因为它的依赖扫描程序还能够列出和显示某些可执行文件的直接依赖关系以及来自可执行文件直接依赖的其他文件的依赖关系。它以漂亮的树状结构对它们进行排序和显示。因此,这应该可以帮助您找出 Indy(它自己的 dll)或应用程序的其他组件是否需要 msvcr100.dll。
    【解决方案2】:

    在您的帮助下,我找到了解决方案。

    使用 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。

    【讨论】:

    • 好。当然,这正是我所说的。考虑到我无法透露有关您分发的 OpenSSL DLL 版本的事实,因为您没有向我们提供该信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-01
    • 2014-09-03
    • 2011-04-15
    • 2023-03-09
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多