【问题标题】:How to fix 'undeclared identifier' error in Indy?如何修复 Indy 中的“未声明的标识符”错误?
【发布时间】:2011-03-10 17:48:08
【问题描述】:

我已经下载了 Indy 10.4587,当我尝试在 Delphi 7 中编译并安装它时出现“未声明的标识符”错误。

type
  ADDRINFO = record
    ai_flags        : Integer;      // AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST
    ai_family       : Integer;      // PF_xxx
    ai_socktype     : Integer;      // SOCK_xxx
    ai_protocol     : Integer;      // 0 or IPPROTO_xxx for IPv4 and IPv6
    ai_addrlen      : size_t;     <---------------------------------------------HERE
    ...
  end;

错误在这个文件中: LIB\SYSTEM\IdWship6.pas(49) 致命:无法编译使用的单元 'IdWinsock2.pas'

如何修复这个错误? 谁有稳定版的直接下载链接?


看起来你可以下载的最新的伪稳定版 Indy 可能是 10.4587,实际上可能是 10.4.587。存档中没有 ReadMe 或 About 文件来解释版本和发布日期。它可以从这里的第 3 方网站下载:http://indy.fulgan.com

但是,人们正在谈论可能的版本 10.5.8。如果你有这个“魔法”版本的真正下载链接,请告诉我。

编辑:

我刚刚下载了 v10.4587,它没有编译。

【问题讨论】:

  • size_t 在哪里定义?如果无处,那么它确实是未声明的。
  • @Altar,如果您想要更新的“神奇”版本的 Indy,您很可能必须从 Delphi 7 升级。更高版本的 Indy 不支持旧版本的 Delphi(更改D2009 及更高版本中的 Unicode 可能是部分原因)。
  • 好吧,最新版本的源代码根本没有构建,我使用的是最新的 Delphi。现在的情况比这表明的要多。我认为兼容 64 位 FPC 的 Indy 正在开发中,但问题与上述问题不同。
  • Indy 已经支持 FPC 64 位。现在正在开发中的是 Delphi 64 位。
  • @Alter: 10.5.8 是当前版本号,而 4587(现在最高为 4589)是 SVN 修订号。

标签: delphi


【解决方案1】:

“delphi 7 size_t”上的快速谷歌提供了一个链接,其中有一个定义 size_t 的解决方法以及一个注释,即 indy lib 的较早版本比您提到的版本是可以使用的最后一个版本德尔福7

见:https://forums.embarcadero.com/thread.jspa?threadID=48622

【讨论】:

    【解决方案2】:

    size_t 是未定义的类型。 放

    size_t = integer;
    

    在顶部

    【讨论】:

    • 如果要自己定义,至少定义为unsigned
    • 如果我要定义它,我会使用无符号整数。问题是类型未定义,而不是定义不正确。 :P
    • 对。你的答案引入这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-30
    • 2022-01-17
    • 2013-03-12
    • 1970-01-01
    • 2013-01-22
    • 2011-10-25
    • 2011-02-15
    相关资源
    最近更新 更多