Delphi CompilerVersion Constant / Compiler Conditional Defines

http://delphi.wikia.com/wiki/CompilerVersion_Constant

 

The CompilerVersion constant identifies the internal version number of the Delphi compiler.

It is defined in the System unit and may be referenced either in code just as any other constant:

 

if CompilerVersion = 20 then

  sCompilerName := 'Delphi 2009';

 

or in conditional compiler expressions:

 

{$if CompilerVersion > 18}

  // Delphi 2007 or later

{$ifend}

 

The CompilerVersion constant was introduced in Delphi 6 along with conditional expressions.

In earlier Delphi versions various compiler defined VERxxx symbols are used to determine compiler versions.

CompilerVersion values and the equivalent compiler defined symbols for the Delphi versions in which the CompilerVersion constant is defined are:

CompilerCompilerVersion

Defined Symbol

Delphi XE526VER260
Delphi XE425VER250
Delphi XE324VER240
Delphi XE223VER230
Delphi XE22VER220
Delphi 201021VER210
Delphi 200920VER200
Delphi 2007 .NET19VER190
Delphi 200718.5VER185
Delphi 200618VER180
Delphi 200517VER170
Delphi 8 .NET16VER160
Delphi 715VER150
Delphi 614VER140
Delphi 513VER130
Delphi 412VER120
Delphi 310VER100
Delphi 29VER90
Delphi 18VER80

http://delphi.wikia.com/wiki/Borland_Compiler_Conditional_Defines

 

 

Product NameVersion

Conditional Define

CompilerVersion
Embarcadero RAD Studio XE519.0VER26026
Embarcadero RAD Studio XE418.0VER25025
Embarcadero RAD Studio XE317.0VER24024
Embarcadero RAD Studio XE216.0VER23023
Embarcadero RAD Studio XE15.0VER22022
Embarcadero RAD Studio 201014.0VER21021
CodeGear C++ Builder 200912.0VER20020
CodeGear Delphi 2007 for .NET11.0VER19019?
CodeGear Delphi 2007 for Win3211.0VER180 and VER18518, 18.5
Borland Developer Studio 200610.0VER18018
Borland Delphi 20059.0VER17017
Borland Delphi 8 for .NET8.0VER160 *16
C++BuilderX ? ? 
Borland C#Builder1.0VER160 * 
Borland Delphi 77.0VER15015
Borland Kylix 33.0VER140 ** 
Borland C++Builder 6 ?VER140 **(!!) 
Borland Kylix 22.0VER140 ** 
Borland Delphi 66.0VER140 **14
Borland Kylix1.0VER140 ** 
Borland C++Builder 5 ?VER130 *** 
Borland Delphi 55.0VER130 *** 
Borland C++Builder 4 ?VER125 
Borland Delphi 44.0VER120 
Borland C++Builder 3 ?VER110 **** 
Borland Delphi 33.0VER100 
Borland C++ 5 ? ? 
Borland C++Builder 1 ?VER93 
Borland Delphi 22.0VER90 
Borland C++ 4.5 ? ? 
Borland Delphi1.0VER80 
Borland C++ 4 ? ? 
Borland Pascal 77.0VER70 
Borland C++ 3.1 ? ? 
Turbo Pascal for Windows 1.51.5VER70 
Turbo C++ for DOS 3 ? ? 
Borland C++ 3 ? ? 
Turbo C++ for Windows 3 (Win16) ? ? 
Turbo Pascal for Windows 1.01.0 ??? 
Borland C++ 2 ? ? 
Turbo Pascal 66.0VER60 
Turbo C++ for DOS ? ? 
Turbo C for DOS 2 ? ? 
Turbo Pascal 5.55.5VER55 
Turbo C for DOS 1.5 ? ? 
Turbo Pascal 55.0VER50 
Turbo Pascal 44.0VER40 
Turbo C for DOS ? ? 
Turbo Pascal 33.0 ??? 
Turbo Pascal 22.0 ??? 
Turbo Pascal 11.0 ???

* This conditional define is shared by the Delphi compilers used to build C#Builder 1 and Delphi 8, which do not natively support Delphi for Win32.

This define is used in the "IDE Integration Packs" that were released to Borland partners in order to allow IDE plugins like ModelMaker Code Explorer

(http://www.modelmakertools.com/code-explorer/index.html) and

Castalia (http://www.delphi-expert.com/castalia3) to be compiled.


** This conditional define is shared between C++Builder 6, Delphi 6, Kylix 1, 2, and 3

(Checking for the conditional define "LINUX" helps to determine whether the compiler is Kylix or Delphi and "BCB" can be used to determine if C++Builder is being used).


*** This conditional define is shared with C++Builder 5


**** C++Builder 3.0 used VER110 (it had its own version of the Delphi compiler included).

 

**** CompilerVersion (Delphi 6 or later) can be used with conditional directives like

{$IF CompilerVersion >= 20}  {$DEFINE CanUnicode}  {$IFEND}

or using code:

if System.CompilerVersion >= 22 then  <do something>;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值