【问题标题】:Why do I get compiler errors using Delphi 2010's built-in Indy distribution?为什么使用 Delphi 2010 的内置 Indy 发行版会出现编译器错误?
【发布时间】:2010-03-01 18:35:54
【问题描述】:

我刚刚安装了 Delphi 2010,在使用 idHTTP 组件时遇到了一些问题。如果我将它放在表单上并尝试编译,Delphi 会说:

[DCC 错误] IdCookieManager.pas(118): E2010 不兼容的类型:'TIdCookieList' 和 'TIdCookieDomainList'

[DCC 错误] IdCookieManager.pas(172): E2003 未声明的标识符: 'IsValidCookie'

[DCC 错误] IdCookieManager.pas(236): E2010 不兼容的类型: 'TIdCookieList' 和 'TIdCookieDomainList'

[DCC 致命 错误] Unit4.pas(7): F2063 无法 编译使用的单元 'IdCookieManager.pas'

问题出在哪里?我只是不明白。 =(

PS 这是 Embarcadero® Delphi® 2010 版本 14.0.3593.25826

【问题讨论】:

  • 使用完全修补的 Delphi 2010,我创建了一个新应用程序,在表单上放置了一个 TIdHTTP 组件,它编译得很好。有更详细的步骤吗?
  • 我也对 Delphi 2010 中的 IdHttp 没有问题。

标签: delphi indy


【解决方案1】:

D2010 附带的 Indy 版本不完整,但可能已在后续更新中修复。如果不是,或者如果您使用的是未打补丁的 Delphi,这只是 a number of problems you may encounter, depending on which parts of Indy you use 之一。

我建议您确保您的 Delphi 已完全更新,并且可能还考虑从 AtoZed SVN server 获取最新的 Indy 10。

【讨论】:

  • 同意,获取最新版本的 Indy 是个好主意。但是,他的 Delphi 已完全更新,在新项目的表单中删除 TIdHTTP 组件(Delphi 2010 附带的版本)对我来说就像是一种魅力。
  • 升级到更新的 Indy 10 SVN 快照是要走的路。自 2010 年发布以来,已经修复了几个错误,包括对 Cookie 支持类的重大更新。
【解决方案2】:

IIRC,当您安装 D2010 时,您选择是安装 Indy 9 还是 10。在我看来,这是您选择安装 Indy 9 的一种情况,但 IDE 中的库路径看到的是 Indy10 源代码(反之亦然)反之亦然),而它在 Lib 文件夹中看到其他版本的 .DCU。

最简单的解决方法是重新安装 Delphi,并确保选择 Indy 10,以便源文件和编译后的 .DCU 文件匹配。另一种选择是完全卸载 Indy,然后从@Deltics 上面建议的源重新安装它。

【讨论】:

  • 在 D2010 中没有安装 Indy 9 的选项。 Indy 9 与 2010 甚至 2009 不兼容。它被意外包含在 2009 年的安装程序中。
  • 雷米,我一定一直在考虑 D2009 有两个版本。感谢您的更正。不过,看起来编译器仍然在找到这两个版本并对我感到困惑;这是 OP 在“TIDCookieList”和“TIDCookieDomainList”等事件发生时看到的“不兼容类型”消息的常见原因。
【解决方案3】:

Delphi 2010 不附带 Indy 的 DCU 吗?

为什么要在试图编译 Indy 源的表单上删除 TIdHTTP?您是否将 Indy 源文件的路径添加到库路径?

我最新的 Delphi 是 2009 年,但带有 DCU 的文件夹 $(BDS)\Lib\Indy10 位于库路径的顶部附近

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-08
    • 1970-01-01
    • 2023-03-30
    • 2014-10-11
    • 1970-01-01
    • 1970-01-01
    • 2018-11-29
    相关资源
    最近更新 更多