dcc32 错误 x.pas(648):E2003 未声明的标识符:'x'

dcc32 Error x.pas(648): E2003 Undeclared identifier: 'x'

所以我尝试向单元 IdMessage.pass 添加两个属性。所以我添加了

  TIdMessage = class(TIdBaseComponent)
  private
    FTaskID: Integer;
    FNotificationID: Integer;
  protected
   ... all protected properties and procedures


  public

   ... all protected procedures and functions

    property TaskID : Integer read FTaskID write FTaskID;
    property NotificationID : Integer read FNotificationID write FNotificationID;

  published

    ...published properties
  End;

该单元看起来不错,但是当我尝试编译使用这两个属性的项目时,出现未声明的标识符错误。我不知道为什么。如果我在设计时按 CTRL+CLICK 属性,它会将我带到单元中的 属性,但是当我尝试构建或编译它时会遇到此错误。有什么建议么?

无论您在评论中怎么说,您都在修改第三方代码。实际上你在做一个叉子。编译器错误只是未来问题的第一个症状。编译器没有使用您编写的代码。编译器正在使用不同的版本。

通过确保编译器使用您的分叉而不是原始代码,您肯定可以使分叉工作。但是,您正在为跌倒做好准备。下次升级 Indy 时,会发生什么?你能把你的分支合并到新的 Indy 中吗?

如果分叉是最好的解决方案,那就这样吧。但几乎可以肯定不是。我们不知道您的实际问题是什么,但分叉似乎不太可能是最好的前进方式。尝试找到一种允许您不修改 Indy 代码的设计。