分的开头。
编译设置对话框的设置都有与之对应的编译指令用于在代码中对编译器进行设置,如下表所示。
设置项 编译指令
Optimizations {$O}
Aligned record fields {$A}
Stack frames {$W}
Pentium-safe FDIV {$U}
Range Checking {$R}
I/O Checking {$I}
Overflow Checking {$Q}
Strict Var-strings {$V}
Comlete Boolean Eval {$B}
Extended Syntax {$X}
Typed @ Operator {$T}
Open Parameters {$P}
Huge Strings {$H}
Assertions typed constants {$J}
Debug information {$D}
Local sysnbols {$L}
在这些编译指令以外还有一些非常有用的编译指令。
$R Filename : 这个编译指令是最为常用的编译指令,他是资源文件编译指令,用于指定连接到执行文件和库的资源文件,
例如在工程文件(.dpr)中会有{$R *.RES}的编译指令,表明把后缀为 .RES的与工程文件同名的资源文件连接
入执行文件,也可以指定一个资源文件,资源文件的使用对于编写Windows程序来说是很重要的基础。
$I Filename :这个编译指令功能类似于C语言的#Include , 用于指定编译时包括的文件。
****************************
********************************************************************************************
A.3 使用条件编译指令
条件编译指令是非常重要的编译指令,他控制着在不同条件下(例如,不同的操作
系统)产生不同的代码。条件编译指令是包含在
注释括号之内的,如下表所示。
条件编译指令 含义
$DEFINE 用于定义一个条件符号,一旦定义,条件符号就为真
$ELSE 与$IFDEF配合使用,如果$IFDEF条件为假,则只对源文件$ELSE后一小部分进行编译
$ENDIF 结束一个以$IF开始的条件段
$IFDEF 对条件符号进行判断,为真则编译源文件
$IFNDEF 对条件符号进行判断,为假则编译源文件
$IFOPT 根据编译开关状态,对源文件编译
$UNDEF 撤消以前的条件符号定义
这些条件编译指令是非常有用的。例如,可以通过开关的状态来控制编译:
{IFOPT R+}
showmessage('Compiled with range-checking');
{$ENDIF}
也可以通过定义条件符号来控制编译:
{$Define s}
……
{$ifdef s}
showmessage('yes');
{$else}
showmessage('no');
{$endif}
他的编译结果是显示'yes',但是如果省去{$Define s}则显示'no'。
在
Delphi中已经预定义了一些关键的条件符号,如下表所示。
条件符号 含义
VERxx 编译器版本,XX表示版本,例如:Delphi 1.0 的编译器版本为80、Delphi 5.0 的编译器版本为130
WIN32 是否WIN32的运行环境(Windows 95.98/NT/2000)
CPU386 是否Intel386以上的处理器
ONSOLE 是否控制台程序
Delphi的编译器指令除了以上的指令外还有一些,不过最为
常用的指令已经全部介绍完了。对于普通的
程序,Delphi是不
需要编程者去添加编译器指令的,Delphi已经自动完成,但是要得到高品质的应用程序或者有特殊的要求的程序就必须熟悉
Delphi的编译指令。Delphi不仅有最快的编译器而且编译器的功能也非常强大。