我有两个DWScript单元文件:
unit unit1; | unit unit2;
|
interface | interface
|
procedure Proc1exec; | procedure Proc2exec;
procedure Proc1; | procedure Proc2;
|
implementation | implementation
|
uses unit2; | uses unit1;
|
procedure Proc1exec; | procedure Proc2exec;
begin | begin
unit2.Proc2; | unit1.Proc1;
end; | end;
|
procedure Proc1; | procedure Proc2;
begin | begin
end; | end;在unit1的编译过程中
ECompileError,具有消息‘未知名称’unit1.Procl‘’
使用IdwsProgram.Msgs.AsInfo中的下列文本:
语法错误:未知名称"unit1.Proc1“行: 14,列: 9,文件: unit2
请解释我如何编制这样的循环参考单位。
编辑:为了使讨论更接近我的需求,我将重新表述这个问题。为什么DWScript不允许我编译这两个单元?
发布于 2017-09-13 12:34:11
一种解决办法是把所有的东西都放在一个单元里。
另一个是:
unit shared;
interface
procedure Proc1exec;
procedure Proc2exec;
implementation
uses unit1, unit2;
procedure Proc1exec;
begin
unit1.proc1;
end;
procedure Proc2exec;
begin
unit2.proc2;
end;和
unit unit1;
interface
procedure Proc1;
implementation
procedure Proc1;
begin
// do something useful
end;
end.unit2也有类似之处。
现在,您的代码只需包括:
program Test;
uses
unit1, unit2, shared;
begin
Proc1exec;
Proc2exec;
end.发布于 2017-09-16 16:07:12
最后,我转向了PaxCompiler。它处理的单位从原来的岗位,没有问题。它也很容易使用,并且完全涵盖了我的需求。
https://stackoverflow.com/questions/46196957
复制相似问题