【问题标题】:Which Openssl version compatible with Indy 10 version 5519 and 5438?哪个 Openssl 版本与 Indy 10 版本 5519 和 5438 兼容?
【发布时间】:2020-02-04 14:12:42
【问题描述】:

我在 Delphi 5 下使用 Indy 10 build 5438 和 OpenSSL 1.0.2m。

使用某些(不是全部)电子邮件帐户发送 TLS v1.2 电子邮件存在一些问题,我想尝试升级 Indy 10 的 OpenSSL DLL 文件,但我不知道哪个是兼容。

与 Indy 10 build 5438 兼容的最新(!)OpenSSL 版本是什么?

我已经尝试使用fulld_5.bat 在 Delphi 5 下安装最新的 Indy 10 build 5519,但失败了:

IdIMAP4.pas(2958) Error: Undeclared identifier: 'LLTextBuf'

IdIMAP4.pas(2958) Error: Incompatible types

IdIMAP4.pas(3185) 
IdIMAP4.pas(3697) 
IdIMAP4.pas(4209) 
IdIMAP4.pas(4721) 
IdIMAP4.pas(5233) 
IdIMAP4.pas(5745) 
IdIMAP4.pas(6257) 
IdIMAP4.pas(6769) 
IdIMAP4.pas(7251) 

IndyProtocols50.dpk(267) Fatal: Could not compile used unit 'IdIMAP4.pas'
Error!

【问题讨论】:

  • 在哪里可以下载早期版本的 Indy 10? (比如比 5438 新,但比 5519 旧)
  • 内部版本号是一个 SVN 版本号。您必须直接从 Indy's SVN server 下载特定修订版

标签: indy10 delphi-5


【解决方案1】:

Indy 10 使用标准的 OpenSSL DLL。任何 1.0.2 版本的 OpenSSL 都与 Indy (Indy does not support OpenSSL 1.1.x yet) 兼容。但是,在 Indy 的 Fulgan 镜像上提供了 OpenSSL 1 的预构建版本(在没有 MS Visual C++ 运行时依赖的情况下构建):

https://indy.fulgan.com/SSL

1:在撰写本文时,可用的最新版本是 1.0.2t。

至于IdIMAP4.pas 错误,这是最近一次代码签入中的拼写错误。在第 2958 行,对 LLTextBuf 的引用需要改为 LTextBuf

LUseNonSyncLiteral := LCanUseNonSyncLiteral and ((not LNonSyncLiteralIsLimited) or (Length({LLTextBuf}LTextBuf) <= 4096)); // <-- change LLTextBuf to LTextBuf

我现在已经在官方 Indy 代码(SVN 修订版 5520)中修复了这个问题。

【讨论】:

  • 谢谢雷米!我修正了错字并重新编译工作,现在我正在使用最新的 Indy 10 和 Delphi 5(因为我自己的旧源代码)!
  • @peteri77 我刚刚签入了针对 Indy SVN 的 IdIMAP4.pas 错误的修复。
猜你喜欢
  • 2021-02-25
  • 1970-01-01
  • 2017-04-29
  • 2023-03-29
  • 1970-01-01
  • 2016-08-13
  • 2016-01-06
  • 2018-04-14
  • 1970-01-01
相关资源
最近更新 更多