【发布时间】:2015-08-21 14:16:11
【问题描述】:
在我的应用程序(使用 Delphi XE8 构建)中,我使用 IdHTTP 组件。当我尝试运行该应用程序时,抛出了以下异常:“无法加载 SSL 库”。 我通过从这个站点下载 OpenSSL 库解决了这个问题 http://thundaxsoftware.blogspot.nl/2014/09/cannot-load-ssl-library-using-delphi-xe7.html 如果我是正确的:需要文件“libeay32.dll”和“ssleay32.dll”。
但它只对我有用。我的一个朋友也使用这个应用程序,遇到了同样的错误(“无法加载 SSL 库”)。 我希望其他人能够下载我的应用程序,而不必单独下载 OpenSSL 库。 是否可以将这两个文件包含到我的应用程序中? 例如,通过将文件夹添加到应用程序的目录位置?如果是这样,我怎样才能让应用程序在需要时找到这些文件?
我希望你能帮助我! (我为糟糕的英语道歉)
【问题讨论】:
-
您是在问how to statically link OpenSSL libraries,还是如何将它们部署在相对于您的应用程序二进制文件的子文件夹中?只需将它们添加到与您的应用程序相同的文件夹中就足够了(并且在许多情况下是最佳选择)。
-
这些库的静态链接是个坏主意,如果确实有可能的话。只需在可执行文件旁边部署 DLL。
-
@TLama 我想知道如何将这些 .dll 文件与我的应用程序链接,以便 IdTHHP 组件可以访问这些文件。我希望以这样的方式完成此操作,即我可以将应用程序发送给其他人,并且该应用程序仍与这些文件链接。我希望你能明白我的意思..
-
@David Heffernan:如果我将 DLL 与可执行文件一起部署,如何让我的应用程序找到这些文件?我是否必须添加库路径或其他内容?
-
不,这是要搜索的第一个地方。 DLL 搜索路径从可执行目录开始。当然,我假设 Indy 会尊重 DLL 搜索路径,但我很确定,如果你不告诉它在哪里查找,DLL 搜索路径就是它可以尝试的全部。