第4部分 编译文件(第9页)
一个更复杂的例子 接下来展示的一个程序例子,被分割到了2个文件。一个工程文件,一个单元文件。你可以将工程文件保存为greeting.dpr,它看起来是这样的: program greeting; {$APPTYPE CONSOLE} uses Unit1; begin PrintMessage(''''Hello World!''''); end. 第一行说明了程序名称为greeting,又是一个控制台应用程序。 uses Unit1;这句告诉编译器,这个程序依靠一个命名为Unit1的单元文件。最后这个程序盗用PrintMessage过程,传递给他一个字符串“hello world!”,PrintMessage被定义在Unit1文件中。 这是until的源代码,必须被保存在一个命名为Unit1.pas的文件中。 unit Unit1; interface procedure PrintMessage(msg: string); implementation; procedure PrintMessage(msg: string); begin Writeln(msg); end; end. Unit1 定义了一个被称为PrintMessage的过程。输入一个字符串的变量,并显示这个变量到标准输出窗口。(在delphi中,不返回值的程序被程为过程。又返回值的程序被称为函数。)注意,PrintMessage在Unit1 中被定义了2次。第一次定义,在关键词interface之后,使PrintMessage在用到Unit1的其他模块中有效。第2次定义,在关键词implementation之后,实现了PrintMessage的定义。 你现在从命令行中输入并编译Greeting dcc32 greeting 去产生一个win32的可执行文件,或则 dccil greeting 去产生一个.net下的可执行文件。 在命令行中不需要包含Unit1。当编译器产生greeting.dpr,就可以自动的找到greeting程序所依靠的单元文件。结果和第一个例子相同:打印消息Hello world!
|