当软件在多个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

最新文章

  1. zsh 自动补全导致命令显示重复
  2. Mesos高可用解决方案剖析
  3. C 语言学习的第 03 课:你的 idea 是怎么变成能够执行的程序的
  4. 分享一个快速设置背景的js 自动获取背景图的长宽
  5. 学会查看tomcat的日志文件
  6. 数据库之--- SQLite 语句
  7. c++学习笔记和思考
  8. 使用AJAX日历控件,显示某些日期(CalendarExtender)
  9. org.apache.hadoop.ipc.Client: Retrying connect to server异常的解决
  10. B507实验室打印机连接方法
  11. 使用JavaMail发送带附件的邮件
  12. Django 基本设置
  13. IDEA操作技巧与Tomcat集成
  14. Swift 了解(2)
  15. jQuery中清空元素.empty()和.html(''),两种方法的对比
  16. Vue学习【第四篇】:Vue 之webpack打包工具的使用
  17. Mysql 在 Windows环境下安装:应用程序无法正常启动0xc000007b
  18. java的第一次博客
  19. [Oracle]System 表空间的文件丢失
  20. 拼接html a标签字符串,onClick传递两个字符串类型参数写法

热门文章

  1. Android Studio failed to create error code -6解决方法
  2. 文件读取错误UnicodeDecodeError: 'utf-8' codec can't decode byte 0x92 in position 884: invalid start byte
  3. charles2 重写
  4. win7右下角的网络连接图标不见了~终极必杀技
  5. ueditor上传图片时目录创建失败的问题解决方法,不用那么麻烦,其实修改php/config.json这个配置文件里面的路径就行!!
  6. javascript使用bind指定接收者
  7. 0122(本来是想ak的但是因为智障只拿了200。)
  8. 【UVA】10635 Prince and Princess(LCS)
  9. Elasticsearch client node 启动时出现警告:exception caught on transport layer 及java.net.NoRouteToHostException: No route to host
  10. MySQL创建函数报“ERROR 1418 ”错误,不能创建函数