【问题标题】:Delphi 10.4 and INDY 9德尔福 10.4 和印地 9
【发布时间】:2021-02-17 23:06:26
【问题描述】:

我在 BDS2007 中有很多使用 INDY 9 的程序。 我正在将它们移植到 Delphi 10.4,但这里有 INDY 10。

是否可以在 Delphi 10.4 中删除 INDY 10(暂时未使用)并安装/编译 INDY 9? 在犯错之前,我会问是否有人已经成功地做到了这一点。

最好的问候 西尔弗利奥

【问题讨论】:

  • 我强烈建议不要将Indy 10 替换为Indy 9Indy 10 包括最新功能和标准更新。
  • Indy 9 是否与 Delphi 2009 引入的 Unicode 字符串类型兼容(我不这么认为!)?如果您尝试在当前 IDE 版本中使用这种过时的版本,请准备好面对很多麻烦、疯狂的副作用甚至编译错误。
  • @DelphiCoder 不,Indy 9 根本不兼容 Unicode。

标签: delphi updates porting installation-package indy-9


【解决方案1】:

Indy 9 与 BDS 2007 之后的 IDE/编译器版本不兼容。除此之外,您必须升级到 Indy 10。您可以在 Indy 9 中执行的所有操作都可以在 Indy 10 中执行,尽管语法可能略有不同,具体取决于你到底在使用什么功能。

【讨论】:

  • 感谢 Remy 实际上,我使用 Indy10 中不可用的 ReadFromStream 来获得对传入缓冲区的非阻塞访问。发送方发送由包头 ({) 和包尾 (}) 编码的 ASCII85 分隔的连续包帧:paste.ofcode.org/Ap5CYv5wndHvWXnG5HW39Y'
  • “我使用 ReadFromStream,在 Indy10 中不可用” - 是的。 Indy 9 中TIdTCPConnection 的大部分读/写方法在 Indy 10 中移至TIdIOHandler。因此,您现在可以使用Client.IOHandler.ReadStream(...),而不是Client.ReadStream(...)。同样,TIdTCPConnection.InputBuffer 也已移至TIdIOHandler。话虽如此,您链接到的代码可以使用 InputBuffer.IndexOf()InputBuffer.Remove()/IOHandler.Discard()InputBuffer.ExtractTo...(...) 方法在 Indy 10 中重写。
猜你喜欢
  • 1970-01-01
  • 2019-03-18
  • 1970-01-01
  • 1970-01-01
  • 2018-10-24
  • 1970-01-01
  • 1970-01-01
  • 2013-05-24
  • 1970-01-01
相关资源
最近更新 更多