当软件在多个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]编译条件的更多相关文章

  1. [ActionScript&Flex] FlashBuilder编译条件之如何屏蔽调试代码

    下面讲一下在FlashBuilder中如何添加编译器参数使我们在发布的时候不编译调试代码: 首先设置编译参数 编译参数设置好后,代码我们可以这样写: public class ConditionalC ...

  2. delphi 编译的时候 把Warning去除的方法

    delphi  编译的时候  把Warning去除的方法 在 添加 {$WARNINGS OFF}

  3. 教程-Delphi编译就报毒

    这几天都在忙专周实验,今天用到delphi,一到编译时nod32就报毒,编译空文件也报毒,上网查了资料才明白,是编译文件被感染了,生成软件就会报毒.把自己找到的资料分享如下:   重新编译时,生成的e ...

  4. 工程文件csproj使用编译条件指定属性

    csproj工程文件中有很多xml格式的属性,比如PropertyGroup.ItemGroup,某些属性操作默认是全部的或者是当前编译条件的而已,当我们想指定某些属性只在某个编译条件下发生时就可以通 ...

  5. 把EXE可执行文件等作为资源包含在Delphi编译文件中

    摘自我自己过去写的一段心得. 1.编辑资源文件 *.RCWave: 资源文件是声音文件:RCDATA: 二进制数据AVI: AVI动画:ICON: 图标文件:BITMAP: 位图文件:CURSOR: ...

  6. Delphi编译/链接过程

    下面展示了Delphi是怎样编译源文件,并且把它们链接起来,最终形成可执行文件. 当Delphi编译项目(Project)时,将编译项目源文件.窗体单元和其他相关单元,在这个过程中将会发生好几件事情: ...

  7. Delphi编译指令说明

    Delphi快速高效的编译器主要来自Object PASCAL的严谨,使用Delphi随时都在与编译器交流,大部分情况下不需要干涉编译器的运行,但是有时也需要对编译器进行必要的设置. ******** ...

  8. Delphi编译的程序如何获取管理员权限

    1.制作manifest文件 <?xml version="1.0" encoding="UTF-8" standalone="yes" ...

  9. Delphi 编译错误信息表

    ; not allowed before ELSE ElSE前不允许有“;” <clause> clause not allowed in OLE automation section 在 ...

随机推荐

  1. Think in java.chm 第14章 多线程

    例子1引入线程概念通过得到当前线程方式循环主线程做某事 例子2演示了在主线程之外开启多个线程的基本方式 ( new一个extends Thread ) 例子3 ( task extends Threa ...

  2. jQuery的文档操作

    1.插入操作 一.父元素.append(子元素) 追加某元素 父元素中添加新的元素 var oli = document.createElement('li'); oli.innerHTML = '哈 ...

  3. python 主要模块和方法

    ******************** PY核心模块方法 ******************** os模块: os.remove() 删除文件 os.unlink() 删除文件 os.rename ...

  4. Spring boot with Apache Hive

      5.29.1. Maven <dependency> <groupId>org.springframework.boot</groupId> <artif ...

  5. MPI 打包与解包函数 MPI_Pack(),MPI_Unpack()

    ▶ MPI 中与数据打包传输有关的几个函数 ● 函数 MPI_Pack() 与 MPI_Unpack() 的原型 MPI_METHOD MPI_Pack( _In_opt_ const void* i ...

  6. jeesite快速开发平台(一)----简介

    转自:https://blog.csdn.net/u011781521/article/details/54880170

  7. 33.使用默认的execAndWait拦截器

    转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 当我们进行数据库查询等相关的操作时,如果服务器负荷过重可能不能及时把数据查询 ...

  8. Redhat 7.2 编译安装PostgreSQL 10

    1.环境说明 CentOS7.2 postgresql10.4 2.下载 postgresql的官方地址 https://www.postgresql.org/ftp/source/ 在下载列表中根据 ...

  9. Eureka 客户端 配置Eureka 爬坑

    配置客户端 eureka.client.register-with-eureka=true eureka.client.fetch-registry=true eureka.client.servic ...

  10. 【333】Python3.6 格式化文本

    看如下例子进行体会: min_temperature = 0 max_temperature = 300 step = 20 # \t: A tab print('Fahrenheit\tCelsiu ...