条件符号 含义

VERxx 编译器版本,XX表示版本,例如:Delphi 1.0 的编译器版本为80、Delphi 5.0 的编译器版本为130
WIN32 是否WIN32的运行环境(Windows 95.98/NT/2000)
CPU386 是否Intel386以上的处理器
CONSOLE 是否控制台程序

用   {$IFDEF   VER1XX}   来判断 
  
  //   Delphi   4 
  {$IFDEF   VER120} 
      {$DEFINE   VCL4ORABOVE} 
      {$DEFINE   VCL4O} 
      {$DEFINE   DELPHI} 
      {$DEFINE   DELPHI4} 
      {$DEFINE   OVERLOADING} 
      {$DEFINE   OPTIONALPARAMS} 
  {$ENDIF} 
  
  //   C++   Builder   4 
  {$IFDEF   VER125} 
      {$DEFINE   VCL4ORABOVE} 
      {$DEFINE   VCL4O} 
      {$DEFINE   CBUILDER} 
      {$DEFINE   CBUILDER4} 
      {$DEFINE   OVERLOADING} 
      {$DEFINE   OPTIONALPARAMS} 
  {$ENDIF} 
  
  //   Delphi   5   &   CBuilder   5 
  {$IFDEF   VER130} 
      {$DEFINE   VCL4ORABOVE} 
      {$DEFINE   VCL5ORABOVE} 
      {$DEFINE   VCL5O} 
      {$IFDEF   BCB} 
          {$DEFINE   CBUILDER} 
          {$DEFINE   CBUILDER5} 
      {$ELSE} 
          {$DEFINE   DELPHI} 
          {$DEFINE   DELPHI5} 
      {$ENDIF} 
      {$DEFINE   OVERLOADING} 
      {$DEFINE   OPTIONALPARAMS} 
      {$DEFINE   SAMETEXT} 
  {$ENDIF} 
  
  //Delphi   6 
  {$IFDEF   VER140} 
      {$DEFINE   VCL4ORABOVE} 
      {$DEFINE   VCL5ORABOVE} 
      {$IFDEF   BCB} 
          {$DEFINE   CBUILDER} 
          {$DEFINE   CBUILDER6} 
      {$ELSE} 
          {$DEFINE   DELPHI} 
          {$DEFINE   DELPHI6} 
      {$ENDIF} 
      {$DEFINE   OVERLOADING} 
      {$DEFINE   OPTIONALPARAMS} 
      {$DEFINE   SAMETEXT} 
      {$DEFINE   VCL6ORABOVE} 
      {$DEFINE   VCL6O} 
  {$ENDIF} 
  
  //Delphi   7 
  {$IFDEF   VER150} 
      {$DEFINE   VCL4ORABOVE} 
      {$DEFINE   VCL5ORABOVE} 
      {$IFDEF   BCB} 
          {$DEFINE   CBUILDER} 
          {$DEFINE   CBUILDER7} 
      {$ELSE} 
          {$DEFINE   DELPHI} 
          {$DEFINE   DELPHI7} 
      {$ENDIF} 
      {$DEFINE   OVERLOADING} 
      {$DEFINE   OPTIONALPARAMS} 
      {$DEFINE   SAMETEXT} 
      {$DEFINE   VCL6ORABOVE} 
      {$DEFINE   VCL7ORABOVE} 
      {$DEFINE   VCL6O} 
      {$DEFINE   VCL70} 
  {$ENDIF} 
  
  //Delphi   8 
  {$IFDEF   VER160} 
      {$DEFINE   VCL4ORABOVE} 
      {$DEFINE   VCL5ORABOVE} 
      {$IFDEF   BCB} 
          {$DEFINE   CBUILDER} 
          {$DEFINE   CBUILDER8} 
      {$ELSE} 
          {$DEFINE   DELPHI} 
          {$DEFINE   DELPHI8} 
      {$ENDIF} 
      {$DEFINE   OVERLOADING} 
      {$DEFINE   OPTIONALPARAMS} 
      {$DEFINE   SAMETEXT} 
      {$DEFINE   VCL6ORABOVE} 
      {$DEFINE   VCL7ORABOVE} 
      {$DEFINE   VCL80RABOVE} 
      {$DEFINE   VCL6O} 
      {$DEFINE   VCL70} 
      {$DEFINE   VCL80} 
  {$ENDIF} 
  
  //Delphi   9 
  {$IFDEF   VER170} 
      {$DEFINE   VCL4ORABOVE} 
      {$DEFINE   VCL5ORABOVE} 
      {$IFDEF   BCB} 
          {$DEFINE   CBUILDER} 
          {$DEFINE   CBUILDER9} 
      {$ELSE} 
          {$DEFINE   DELPHI} 
          {$DEFINE   DELPHI9} 
      {$ENDIF} 
      {$DEFINE   OVERLOADING} 
      {$DEFINE   OPTIONALPARAMS} 
      {$DEFINE   SAMETEXT} 
      {$DEFINE   VCL6ORABOVE} 
      {$DEFINE   VCL7ORABOVE} 
      {$DEFINE   VCL80RABOVE} 
      {$DEFINE   VCL9ORABOVE} 
      {$DEFINE   VCL6O} 
      {$DEFINE   VCL70} 
      {$DEFINE   VCL80} 
      {$DEFINE   VCL90} 
  {$ENDIF} 
  
  //Delphi   10 
  {$IFDEF   VER180} 
      {$DEFINE   VCL4ORABOVE} 
      {$DEFINE   VCL5ORABOVE} 
      {$IFDEF   BCB} 
          {$DEFINE   CBUILDER} 
          {$DEFINE   CBUILDER10} 
      {$ELSE} 
          {$DEFINE   DELPHI} 
          {$DEFINE   DELPHI10} 
      {$ENDIF} 
      {$DEFINE   OVERLOADING} 
      {$DEFINE   OPTIONALPARAMS} 
      {$DEFINE   SAMETEXT} 
      {$DEFINE   VCL6ORABOVE} 
      {$DEFINE   VCL7ORABOVE} 
      {$DEFINE   VCL80RABOVE} 
      {$DEFINE   VCL9ORABOVE} 
      {$DEFINE   VCL1O0RABOVE} 
      {$DEFINE   VCL6O} 
      {$DEFINE   VCL70} 
      {$DEFINE   VCL80} 
      {$DEFINE   VCL90} 
      {$DEFINE   VCL100} 
  {$ENDIF} 
  
  {$IFDEF   LINUX} 
      {$DEFINE   VCL4ORABOVE} 
      {$DEFINE   VCL5ORABOVE} 
      {$DEFINE   OVERLOADING} 
      {$DEFINE   OPTIONALPARAMS} 
      {$DEFINE   SAMETEXT} 
      {$DEFINE   VCL6ORABOVE} 
      {$DEFINE   VCL6O} 
      {$UNDEF   DELPHI6} 
      {$DEFINE   KYLIX} 
      {$IFDEF   CONDITIONALEXPRESSIONS} 
          {$IF   RTLVersion   =   14.0} 
          {$DEFINE   KYLIX2} 
          {$IFEND} 
          {$IF   RTLVersion   =   14.50} 
          {$DEFINE   KYLIX3} 
          {$IFDEF   BCB} 
              {$DEFINE   BCBKYLIX3} 
          {$ENDIF} 
          {$IFEND} 
          {$IF   RTLVersion   =   15.0} 
          {$DEFINE   KYLIX4} 
          {$IFEND} 
      {$ENDIF} 
  {$ENDIF}

如何利用预编译指令来判断Delphi 的版本转载的更多相关文章

  1. Delphi 预编译指令 的用法

    A.3 使用条件编译指令条件编译指令是非常重要的编译指令,他控制着在不同条件下(例如,不同的操作系统)产生不同的代码.条件编译指令是包含在注释括号之内的,如下表所示.                 ...

  2. Delphi 预编译指令

    <Delphi下深入Windows核心编程>(附录A Delphi编译指令说明)Delphi快速高小的编译器主要来自Object PASCAL的严谨,使用Delphi随时都在与编译器交流, ...

  3. Delphi中预编译指令

    本文转自 http://www.cnblogs.com/JackSun/archive/2010/12/20/1911250.html <Delphi下深入Windows核心编程>(附录A ...

  4. c语言中条件编译相关的预编译指令

    一. 内容概述 本文主要介绍c语言中条件编译相关的预编译指令,包括#define.#undef.#ifdef.#ifndef.#if.#elif.#else.#endif.defined. 二.条件编 ...

  5. iOS中的预编译指令的初步探究

    目录 文件包含 #include #include_next #import 宏定义 #define #undef 条件编译 #if #else #endif #if define #ifdef #i ...

  6. c/c++中的预编译指令总结

    预处理指令提供按条件跳过源文件中的节.报告错误和警告条件,以及描绘源代码的不同区域的能力.使用术语“预处理指令”只是为了与 C 和 C++ 编程语言保持一致.在 C# 中没有单独的预处理步骤:预处理指 ...

  7. C语言的预编译,程序员必须懂的知识!【预编译指令】【预编译过程】

    由“源代码”到“可执行文件”的过程包括四个步骤:预编译.编译.汇编.链接.所以,首先就应该清楚的首要问题就是:预编译只是对程序的文本起作用,换句话说就是,预编译阶段仅仅对源代码的单词进行变换,而不是对 ...

  8. 利用预编译解决C/C++重复定义的错误 -2020.09.13

    利用预编译解决C/C++重复定义的错误 -2020.09.13 我们现在有main.c和function.h两个文件 main.c #include <stdio.h> #include ...

  9. C/C++中的预编译指令

    工作中遇到的: 一个头文件中的: #pragma warning(disable:4996)#pragma warning(disable:4244)#pragma warning(disable:4 ...

随机推荐

  1. ARC和MRC实现单例模式

    代码如下,可直接拷贝到头文件中 #define singleton_h(name) +(instancetype)shared##name # if __has_feature(objc_arc) / ...

  2. Fxcop 初体验

    代码质量对于软件项目的成败很重要,这点我想大家都明白.那么在一个软件团队中如何保证代码质量呢?对于这个问题不同的人可能会有不同的答案,对于我而言我觉得做好两点代码质量基本就可以保证了: 1.代码规范( ...

  3. CentOS7设置IP地址

    root权限下cd到/etc/sysconfig/network-scripts, vi ifcig-em1 TYPE=Ethernet BOOTPROTP=static NAME=em1 UUID= ...

  4. 实例:图像载入、显示、混合与输出[OpenCV 笔记8]

    是的是的,忍着尿意努力更新,就是为了更到wuli男神的部分,当然要把男神放在前面镇楼,欢迎下载配图,具体操作见code wuliEddie.jpg logo.png results.jpg LoadS ...

  5. Mac OS 安装 Port

    简介 MacPorts类似与apt-get以及yum等软件包管理工具,可以方便的进行安装与卸载软件的功能,同时可以自动安装软件包的依赖,非常方便,同类的还有brew等工具. 安装 下载MacPorts ...

  6. MongoDB笔记(五)深入学习

    系列一:http://www.cnblogs.com/huangxincheng/category/355399.html系列二:http://www.cnblogs.com/lipan/catego ...

  7. ubuntu 初始

    1.命令行界面与图形界面 ctrl + alt + f1进入命令行界面 ctrl + alt + f7 切换图形界面 2.ubuntu 的wubi安装与卸载 第一:在win 系统下启动DOS,进入命令 ...

  8. 青瓷qici - H5小游戏 抽奖机 2 界面布局

    背景图片 首先我们需要在当前场景下面创建UI的根节点,这个根节点决定了我们整个游戏的元素布局,以及适应多分辨率的缩放布局问题,所以我们其他的元素都要放在UIRoot下面. 考虑到我自己测试的时候在PC ...

  9. 基于 Redis 数据累计的实现

    需求:对上传文件进行统一编号,以 xxx-YYYYmmdd-000001为编码格式,其中YYYYmmdd为当天传的日期. 技术方案:redis,get,set,incr,expireAt即可实现. p ...

  10. centos 6.3 64位安装php5.5及配置tengine

    PHP 用到的工具包: yum install gd-devel libjpeg-devel libpng-devel freetype-devel libxml2-devel curl-devel ...