The CompilerVersion constant identifies the internal version number of the Delphi compiler.
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.的更多相关文章
- Delphi CompilerVersion Constant / Compiler Conditional Defines
http://delphi.wikia.com/wiki/CompilerVersion_Constant The CompilerVersion constant identifies the in ...
- 当前项目与当前环境的JDK版本不匹配”Bad version number in .class file“
java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLoader.d ...
- 解决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模块,比 ...
- UnsupportedClassVersionError: Bad version number in .class file
java.lang.UnsupportedClassVersionError: Bad version number in .class file造成这种过错是ni的支撑Tomcat运行的JDK版本与 ...
- java.lang.UnsupportedClassVersionError: Bad version number in .class file异常
java.lang.UnsupportedClassVersionError: Bad version number in .class file异常 部署工程时也出现过因为版本不同引起的问题,那时我 ...
- Bad version number in .class file
TY项目是用JDK1.6做的,早先在电脑上装了一个1.5的,这回就不能用了.为了能用,我就又装了一个1.6的,修改了环境变量之后,以为一切OK.开始测试,首先在Myeclipse中打开我用1.5编的一 ...
- 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 ...
- Java Bad version number in .class file
错误信息: java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLo ...
- Java 异常 —— Bad version number in .class file
把一个项目拷贝到另一个环境,运行时报错: Caused by: java.lang.UnsupportedClassVersionError: Bad version number in .class ...
随机推荐
- [wikioi2144]砝码称重2(另类的dfs)
题目描述 Description 有n个砝码,现在要称一个质量为m的物体,请问最少需要挑出几个砝码来称? 注意一个砝码最多只能挑一次 输入描述 Input Description 第一行两个整数n和m ...
- ACL权限的学习
ACL ACL:访问控制列表,其主要作用是将一些"用户"加到表中,并对这些用户的行为进行控制. 案例: 有个文件夹project是root用户创建,并且关于这个文件夹有以下权限 d ...
- c# TextBox只允许输入数字,禁用右键粘贴,允许Ctrl+v粘贴数字
TextBox只允许输入数字,最大长度为10 //TextBox.ShortcutsEnabled为false 禁止右键和Ctrl+v private void txtNumber_KeyPress( ...
- JS实现Ajax,Josn数据的序列化和反序列化---例: 省市区联动(包含get,post)
服务器端相应JOSN数据 用到序列化和反序列化----命名空间using System.Web.Script.Serialization; public void ProcessRequest(H ...
- .Net MVC中访问PC网页时,自动切换到移动端对应页面
随着移动端的流行,越来越的网站,除了提供PC网页之外,也提供了移动端的H5页面,手机在访问www.xxx.com的时候,能自动跳转到mobile.xxx.com.网上很多在实现时也能使用JS直接进行跳 ...
- BZOJ-3226 校门外的区间 线段数+拆点(类似的思想)
shabi题....bzoj关键字检查freopen??可怕,,1A的卡了一小时.... 3226: [Sdoi2008]校门外的区间 Time Limit: 10 Sec Memory Limit: ...
- BZOJ-1861 Book 书架 Splay
1861: [Zjoi2006]Book 书架 Time Limit: 4 Sec Memory Limit: 64 MB Submit: 1010 Solved: 588 [Submit][Stat ...
- UVA 1398 Meteor
传送门 Solution: 记一颗流星在视野内的时间段为(L, R), 为了使所有(L, R)都取整数,首先将坐标放大. 放大倍数可取为 LCM(1, 2, ..., 10)= 2520 接着计算:从 ...
- Linux 内核通知链机制的原理及实现
一.概念: 大多数内核子系统都是相互独立的,因此某个子系统可能对其它子系统产生的事件感兴趣.为了满足这个需求,也即是让某个子系统在发生某个事件时通知其它的子 系统,Linux内核提供了通知链的机制.通 ...
- poj1787Charlie's Change(多重背包+记录路径+好题)
Charlie's Change Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 3720 Accepted: 1125 ...