Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi Indy 10加载SSL库,即使我删除了它们_Delphi_Ssl_Indy - Fatal编程技术网

Delphi Indy 10加载SSL库,即使我删除了它们

Delphi Indy 10加载SSL库,即使我删除了它们,delphi,ssl,indy,Delphi,Ssl,Indy,我现在遇到了一个非常奇怪的问题。在我的一个应用程序中,我使用OpenSSL和Indy来创建到主机的安全TCP连接。我想测试应用程序和Indy是否能够识别OpenSSL库是否丢失。这些库放在应用程序文件夹中 奇怪的是,即使我删除了库,我的应用程序仍然可以正常工作。我还从我的计算机中删除了OpenSSL本身,并搜索了OpenSSL库的任何其他外观。我的计算机上没有OpenSSL库 那么到底发生了什么?我从IndyOpenSSLHeader调用Load方法来加载库,并猜测它们正在完美地加载什么。这怎么

我现在遇到了一个非常奇怪的问题。在我的一个应用程序中,我使用OpenSSL和Indy来创建到主机的安全TCP连接。我想测试应用程序和Indy是否能够识别OpenSSL库是否丢失。这些库放在应用程序文件夹中

奇怪的是,即使我删除了库,我的应用程序仍然可以正常工作。我还从我的计算机中删除了OpenSSL本身,并搜索了OpenSSL库的任何其他外观。我的计算机上没有OpenSSL库

那么到底发生了什么?我从IndyOpenSSLHeader调用Load方法来加载库,并猜测它们正在完美地加载什么。这怎么可能?我的计算机上没有库^^

顺便说一句,我没有设置自定义库路径。据我所知,我使用的默认文件夹应该是应用程序文件夹

我正在使用Delphi XE5和Indy 10 for me应用程序

这里怎么了


提前谢谢

它们可以静态链接到二进制文件中

此外,还有很多地方可以使用SSL库。 请参阅本文桌面应用程序的搜索顺序: 如果您使用的是iOS,那么。在任何其他平台上,Indy都不可能在不首先加载其库文件的情况下成功使用OpenSSL/TLS,因此它们必须从您错过的地方加载。如果您在Windows上运行,请使用查看它们的实际加载位置


Indy默认使用OS搜索路径加载外部库。操作系统默认在应用程序文件夹中查找,但也可以在其他地方查找。您可以使用Indy的IdOpenSSLSetLibPath函数指定希望从何处加载OpenSSL。ZLib-IdZLibSetLibPath有一个类似的函数。这有助于确保应用程序只从应用程序的文件夹加载库,而不从其他地方加载库,以防有人恶意从应用程序的文件夹中删除库,试图欺骗它从操作系统搜索路径上的另一路径加载库。如果您只想查看应用程序在库丢失时的反应,而不必实际删除它们,那么它也适合用于测试目的。

Indy不会静态链接OpenSSL库。@EugeneMayevski'EldoSCorp:,而是在所有其他平台上动态链接。有人要求在非iOS平台上添加对静态链接的支持。@RemyLebeau如果您重新阅读,问题不是关于iOS的。是关于桌面的。对不起,我的错!我忘了加上我正在使用Windows。@EugeneMayevski'EldoSCorp:首先,OP的问题中没有提到任何区别移动和桌面的东西。OpenSSL可以在许多平台上使用,问题的措辞可以应用于任何平台。桌面的唯一标志是上面OP的评论。第二,我对iOS的评论是回应你的评论,即Indy没有静态链接到OpenSSL。在iOS上,确实如此。就这些。谢谢,我不知道Process Explorer。我已经在IdOpenSSLSetLibPath上绊倒了。肯定会使用此函数指定Indy仅从应用程序文件夹加载OpenSSL库。