[Delphi]编译条件
Posted 十年磨一剑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Delphi]编译条件相关的知识,希望对你有一定的参考价值。
当软件在多个DELPHI版本下编译时,需要处理各版本的不同情况,使用编译条件技术实现。
万一博客,编译指令基础使用介绍:http://www.cnblogs.com/del/category/168694.html
Delphi的版本区分:
RTL的版本: Run-Time Library 运行时库, 包括 System, SysUtils, Math 三个单元. 提供函数与语言, 编译器,
操作系统及进程有关。 在System单元有常量定义:
const
RTLVersion = 22.00; //XE
编译器的版本:查看方法,在命令行中,切换到对应delphi安装目录中的bin目录,执行dcc32.exe, 如XE:
可以看到 Embarcadero Delphi for Win32 compiler version 22.0 。
System单元:{$EXTERNALSYM CompilerVersion}
inc文件:
.inc 文件就是include file的意思。在单元文件中可以用指令{$I \'xxx.inc\'} 进行导入。.inc文件中可以写符合delphi语法的
代码。另外: 引入 C 语言的 obj 文件是用 {$L 路径} 指令完成的。
常用编译指令说明:
指令 | 可选值 | 范围 | 注释 |
{$MESSAGE HINT|WARN|ERROR|FATAL \'msg\'} | Local | ||
{$LEGACYIFEND ON} | IFEND就统一成ENDIF了,编译器会有警告,打开就可以和早期的版本兼容 | ||
{$HPPEMIT \'string\'} | 添加的字符在C++编译时使用 | ||
{$M +} /{$M-} | Local | 与{$TYPEINFO ON} 作用是一样,指定为类生成与RTTI(Runtime Type Information)相关信息 | |
{$EXTERNALSYM [ \'typeNameInHpp\' [ \'typeNameInHppUnion\' ]]} | 数据类型映射,产生C++头文件,一般跟$OBJTYPENAME一起。 | ||
{$B-} | + | 完整的布尔表达式计算(禁止快捷计算) | |
{$R-} | + | 范围检查(数组,字符串等) | |
{$T-} | Typed @ operator | ||
{$X+} | Extended syntax | ||
{$P+} | Open string params | ||
{$J+} | Writeable structured consts | ||
{$H+} | Use long strings by default | ||
{$Q-} | Overflow checking |
预定义条件标识符:http://docwiki.embarcadero.com/RADStudio/Seattle/en/Conditional_compilation_(Delphi)
编译器版本:http://docwiki.embarcadero.com/RADStudio/Seattle/en/Compiler_Versions
编译符:http://docwiki.embarcadero.com/RADStudio/Seattle/en/Delphi_Compiler_Directives_(List)_Index
以上是关于[Delphi]编译条件的主要内容,如果未能解决你的问题,请参考以下文章