假设我将此函数保存在某个脚本中:
function Add(a,b:integer):integer;
begin
result:=a+b;
end;
我有另一个脚本如下:
var
a,b,c:integer;
a:=1;
b:=2;
c:=Add(a,b);
println(inttoStr(c));
如何在Delphi中使用dwscript编译两个脚本并从第二个脚本调用第一个脚本?
假设一个文件名为“file1.extension”,其内容为:
function Add(a,b:integer):integer;
begin
result:=a+b;
end;
和另一个名为“main.extension”的文件,其内容:
var
a,b,c:integer;
a:=1;
b:=2;
c:=Add(a,b);
println(inttoStr(c));
您需要在“main.extension”文件的开头添加以下行:
// note that file name is case sensitive
// file1.extension <> FILE1.EXTENSION
// include_once is to solve cycle-includes
// i.e. file1.extension includes main.extension and vice-versa
{$include_once 'file1.extension'}
// or include if file1.extension does not require functions/objects/variables/etc.
// from main.extension
{$include 'file1.extension'}
我建议使用 {$include_once ...} 而不是 {$include ...}。
除了使用 Dorin 的答案中列出的 $include / $include_once 之外,如果您使用的是 SVN (2.3) 版本,还可以使用带有“uses”语句的更传统的单位。
单元可以是具有接口/实现的“经典”单元,也可以是遵循扩展脚本语法的混合单元(只需省略“接口”关键字并开始声明/实现)。
将源传递给编译器的最简单方法是使用事件(OnInclude 用于包含源,OnNeedUnit 用于单元源),但您也可以通过指定 CompileFileSystem 来传递它们。