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:

Compiler
CompilerVersion

Defined Symbol

Delphi XE5
26
VER260

Delphi XE4
25
VER250

Delphi XE3
24
VER240

Delphi XE2
23
VER230

Delphi XE
22
VER220

Delphi 2010
21
VER210

Delphi 2009
20
VER200

Delphi 2007 .NET
19
VER190

Delphi 2007
18.5
VER185

Delphi 2006
18
VER180

Delphi 2005
17
VER170

Delphi 8 .NET
16
VER160

Delphi 7
15
VER150

Delphi 6
14
VER140

Delphi 5
13
VER130

Delphi 4
12
VER120

Delphi 3
10
VER100

Delphi 2
9
VER90

Delphi 1
8
VER80

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

Product Name
Version

Conditional Define

CompilerVersion

Embarcadero RAD Studio XE5
19.0
VER260
26

Embarcadero RAD Studio XE4
18.0
VER250
25

Embarcadero RAD Studio XE3
17.0
VER240
24

Embarcadero RAD Studio XE2
16.0
VER230
23

Embarcadero RAD Studio XE
15.0
VER220
22

Embarcadero RAD Studio 2010
14.0
VER210
21

CodeGear C++ Builder 2009
12.0
VER200
20

CodeGear Delphi 2007 for .NET
11.0
VER190
19?

CodeGear Delphi 2007 for Win32
11.0
VER180 and VER185
18, 18.5

Borland Developer Studio 2006
10.0
VER180
18

Borland Delphi 2005
9.0
VER170
17

Borland Delphi 8 for .NET
8.0
VER160 *
16

C++BuilderX
?
?

Borland C#Builder
1.0
VER160 *

Borland Delphi 7
7.0
VER150
15

Borland Kylix 3
3.0
VER140 **

Borland C++Builder 6
?
VER140 **(!!)

Borland Kylix 2
2.0
VER140 **

Borland Delphi 6
6.0
VER140 **
14

Borland Kylix
1.0
VER140 **

Borland C++Builder 5
?
VER130 ***

Borland Delphi 5
5.0
VER130 ***

Borland C++Builder 4
?
VER125

Borland Delphi 4
4.0
VER120

Borland C++Builder 3
?
VER110 ****

Borland Delphi 3
3.0
VER100

Borland C++ 5
?
?

Borland C++Builder 1
?
VER93

Borland Delphi 2
2.0
VER90

Borland C++ 4.5
?
?

Borland Delphi
1.0
VER80

Borland C++ 4
?
?

Borland Pascal 7
7.0
VER70

Borland C++ 3.1
?
?

Turbo Pascal for Windows 1.5
1.5
VER70

Turbo C++ for DOS 3
?
?

Borland C++ 3
?
?

Turbo C++ for Windows 3 (Win16)
?
?

Turbo Pascal for Windows 1.0
1.0
???

Borland C++ 2
?
?

Turbo Pascal 6
6.0
VER60

Turbo C++ for DOS
?
?

Turbo C for DOS 2
?
?

Turbo Pascal 5.5
5.5
VER55

Turbo C for DOS 1.5
?
?

Turbo Pascal 5
5.0
VER50

Turbo Pascal 4
4.0
VER40

Turbo C for DOS
?
?

Turbo Pascal 3
3.0
???

Turbo Pascal 2
2.0
???

Turbo Pascal 1
1.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>;

The CompilerVersion constant identifies the internal version number of the Delphi compiler.的更多相关文章

  1. Delphi CompilerVersion Constant / Compiler Conditional Defines

    http://delphi.wikia.com/wiki/CompilerVersion_Constant The CompilerVersion constant identifies the in ...

  2. 当前项目与当前环境的JDK版本不匹配”Bad version number in .class file“

    java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLoader.d ...

  3. 解决golang windows调试问题:Could not determine version number: could not find symbol value for runtime.buildVersion

    版本信息: go:1.8.3 windows: win7/64 idea-go-plugin:171.4694.61 在windows下,使用dlv进行调试的时候,如果golang程序引入了c模块,比 ...

  4. UnsupportedClassVersionError: Bad version number in .class file

    java.lang.UnsupportedClassVersionError: Bad version number in .class file造成这种过错是ni的支撑Tomcat运行的JDK版本与 ...

  5. java.lang.UnsupportedClassVersionError: Bad version number in .class file异常

    java.lang.UnsupportedClassVersionError: Bad version number in .class file异常 部署工程时也出现过因为版本不同引起的问题,那时我 ...

  6. Bad version number in .class file

    TY项目是用JDK1.6做的,早先在电脑上装了一个1.5的,这回就不能用了.为了能用,我就又装了一个1.6的,修改了环境变量之后,以为一切OK.开始测试,首先在Myeclipse中打开我用1.5编的一 ...

  7. oracle.jbo.JboException: JBO-29000: JBO-29000: Bad version number in .class file

    我在本地run Page的时候报以下错误. oracle.jbo.JboException: JBO-29000: JBO-29000: Bad version number in .class fi ...

  8. Java Bad version number in .class file

    错误信息: java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLo ...

  9. Java 异常 —— Bad version number in .class file

    把一个项目拷贝到另一个环境,运行时报错: Caused by: java.lang.UnsupportedClassVersionError: Bad version number in .class ...

随机推荐

  1. PHP时间日期比较

    若要使用PHP来比较日期,最好用DateTime::diff 但是这个是5.3才支持的,如果没有这样的环境,可以使用<.>来比较 如下例子,会输出right $date1=strtotim ...

  2. 每天一个linux命令(47):traceroute命令

    通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径.当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一 ...

  3. 【团队项目演示】FZU5BOYS之团队项目链接汇总

    FZU5BOYS      项目冲刺之博客汇总 Alpha版本 Day One Day Two Day Three Day Four Day Five Day Six Day Seven Day Ei ...

  4. android学习——Android Studio下创建menu布局文件

    一.问题: android studio项目中没有看到menu文件夹: 在android studio项目中想要添加menu布局文件,一开始我的做法是:直接在res文件夹右键选择xml文件来添加,如下 ...

  5. Sublime Text 3 Build 3065 All System CracKed By Hmily[LCG]

    Sublime Text 3 Build 3065 All System CracKed By Hmily[LCG] <ignore_js_op> 程序员文本编辑器 Sublime Tex ...

  6. UVA 540 stl

    Queues and Priority Queues are data structures which are known to most computer scientists. The Team ...

  7. tuple内部方法

    代码: #tuple内部方法 ac=('a','r','6','d','a','b','b','e') print(dir(ac)) print(ac.count('a')) print(ac.ind ...

  8. request.getAttribute() 和 request.getParameter() 有何区别?

    HttpServletRequest类既有getAttribute()方法,也由getParameter()方法,这两个方法有以下区别: (1)HttpServletRequest类有setAttri ...

  9. 4.Android下拉列表框spinner学习

    下拉列表框被广泛使用,诸如淘宝.京东等手机端经常可以看到这个部件身影,今天就来学习下它. 首先布局文件增加代码:如图 接下来在values下增加arrays.xml 如图               ...

  10. 项目跑起来之后,一会儿后台就会报错Illegal access: this web application instance has been stopped already. Could not load [com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask]. The following stack trace

    一月 24, 2016 6:42:54 下午 org.apache.catalina.loader.WebappClassLoaderBase checkStateForResourceLoading ...