gpt4 book ai didi

Delphi - E2003 未声明的标识符问题

转载 作者:行者123 更新时间:2023-12-03 18:40:57 26 4
gpt4 key购买 nike

我在 Delphi XE2 IDE 中遇到了一个非常奇怪的问题。

在一个包中,我声明了以下类:

TCommandInfo = class
private
fParameters : TCommandParameters;
// other fields...
public
property Parameters : TCommandParameters read fParameters;
// other properties...
end;

TReceiveCommand = class(TCommand)
// other fields and properties
private
fInfo : TCommandInfo;

public
property Info : TCommandInfo read fInfo;

end;


TReceiveErrorCommand = class(TReceiveCommand);

TReceiveDataCommand = class(TReceiveCommand)
// procedures and properties defined, etc.
end;

现在在依赖于上面包的完全不同的包中,我有这个成员函数:

procedure DoDataCommand;
var
cmd : TReceiveDataCommand;
success : Boolean;
params : TCommandParameters;
begin
cmd := TReceiveDataCommand.Create;
success := cmd.Initialize;

if success then begin
// #### ERROR HERE ####
params := cmd.Info.Parameters;
end;
end;

我看到的是,在尝试编译依赖包时,我收到 E2003 错误,提示“未声明的标识符:‘信息’”,当我在 TReceiveDataCommand 上按 CTRL+CLICK 以将我带到声明时,IDE跳转到包含包源文件中的不同位置。

我在工作时在我的机器上运行了完全相同的代码,并且可以正常工作。我想知道是否有一些挥之不去的 BPL 潜伏在某处,但我已经清理干净了。

在尝试跳转到 TReceiveDataCommand 类源代码时,IDE 把我带到了错误的位置,这似乎很奇怪。

有什么建议吗?

最佳答案

TReceiveCommand 类型在不同的包中定义。编译器使用 .dcp 文件解析该不同包中的名称。如果 Info 未被识别,那么显然编译器找到的 .dcp 文件与问题中的源代码不匹配。

合乎逻辑的结论是编译器找到了一个过时的 .dcp 文件。

关于Delphi - E2003 未声明的标识符问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30143192/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com