Delphi CompilerVersion ConstantCompiler Conditional Defines

it2022-05-15  60

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 XE526VER260Delphi XE425VER250Delphi XE324VER240Delphi XE223VER230Delphi XE22VER220Delphi 201021VER210Delphi 200920VER200Delphi 2007 .NET19VER190Delphi 200718.5VER185Delphi 200618VER180Delphi 200517VER170Delphi 8 .NET16VER160Delphi 715VER150Delphi 614VER140Delphi 513VER130Delphi 412VER120Delphi 310VER100Delphi 29VER90Delphi 18VER80

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

 

 

Product NameVersion

Conditional Define

CompilerVersionEmbarcadero RAD Studio XE519.0VER26026Embarcadero RAD Studio XE418.0VER25025Embarcadero RAD Studio XE317.0VER24024Embarcadero RAD Studio XE216.0VER23023Embarcadero RAD Studio XE15.0VER22022Embarcadero RAD Studio 201014.0VER21021CodeGear C++ Builder 200912.0VER20020CodeGear Delphi 2007 for .NET11.0VER19019?CodeGear Delphi 2007 for Win3211.0VER180 and VER18518, 18.5Borland Developer Studio 200610.0VER18018Borland Delphi 20059.0VER17017Borland Delphi 8 for .NET8.0VER160 *16C++BuilderX ? ? Borland C#Builder1.0VER160 * Borland Delphi 77.0VER15015Borland Kylix 33.0VER140 ** Borland C++Builder 6 ?VER140 **(!!) Borland Kylix 22.0VER140 ** Borland Delphi 66.0VER140 **14Borland 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>;

转载于:https://www.cnblogs.com/shangdawei/p/3350101.html

相关资源:数据结构—成绩单生成器

最新回复(0)