VER300 Delphi Seattle / C++Builder Seattle 23 230 (Delphi:Win32/Win64/OSX/iOS32/iOS64/Android) (C++Builder:Win32/Win64/OSX/iOS32/iOS64/Android) VER290 Delphi XE8 / C++Builder XE8 22 220 (Delphi:Win32/Win64/OSX/iOS32/iOS64/Android) (C++Builder:Win32/Win64/OSX/iOS32/iOS64/Android) VER280 Delphi XE7 / C++Builder XE7 21 210 (Delphi:Win32/Win64/OSX/iOS/Android) (C++Builder:Win32/Win64/OSX/iOS/Android) VER270 Delphi XE6 / C++Builder XE6 20 200 (Delphi:Win32/Win64/OSX/iOS/Android) (C++Builder:Win32/Win64/OSX/iOS/Android) VER260 Delphi XE5 / C++Builder XE5 19 190 (Delphi:Win32/Win64/OSX/iOS/Android) (C++Builder:Win32/Win64/OSX/iOS) VER250 Delphi XE4 / C++Builder XE4 18 180 (Delphi:Win32/Win64/OSX/iOS) (C++Builder:Win32/Win64/OSX) VER240 Delphi XE3 / C++Builder XE3 17 170 (Delphi:Win32/Win64/OSX) (C++Builder:Win32/Win64/OSX) VER230 Delphi XE2 / C++Builder XE2 16 160 (Delphi:Win32/Win64/OSX) (C++Builder:Win32/OSX) 161 is the version for the five FireMonkey packages at XE2 Update 2: fmi161.bpl, fmx161.bpl, fmxase161.bpl, fmxdae161.bpl, and fmxobj161.bpl. VER220 Delphi XE / C++Builder XE (Win32) 15 150 VER210 Delphi 2010 / C++Builder 2010 (Win32) 14 140 VER200 Delphi 2009 / C++Builder 2009 (Win32) 12 120 VER190 Delphi 2007 for .Net * 11 110 VER180 or VER185 Delphi 2007 / C++Builder 2007 for Win32 * 11 110 VER180 Delphi 2006 / C++Builder 2006 (Win32/.Net) and Delphi/C++Builder 2007 for Win32 10 100 VER170 Delphi 2005 (Win32/.Net) 9 90 VER160 Delphi 8 for .Net 8 80 VER150 Delphi 7 (and 7.1) 7 70 VER140 Delphi 6 / C++Builder 6 6 60 VER130 Delphi 5 / C++Builder 5 5 NA VER125 C++Builder 4 4 NA VER120 Delphi 4 4 NA VER110 C++Builder 3 3 NA VER100 Delphi 3 3 NA VER93 C++Builder 1 NA NA VER90 Delphi 2 2 NA VER80 Delphi 1 1 NA VER70 Borland Pascal 7.0 NA NA VER15 Turbo Pascal for Windows 1.5 NA NA VER10 Turbo Pascal for Windows 1.0 NA NA VER60 Turbo Pascal 6.0 NA NA VER55 Turbo Pascal 5.5 NA NA VER50 Turbo Pascal 5.0 NA NA VER40 Turbo Pascal 4.0 NA NA VER30 : Turbo Pascal 3 VER20 : Turbo Pascal 2 VER10 :Turbo Pascal 1 编译时可以判断版本号:
{$IF CompilerVersion >= 18.5} //some code only compiled for Delphi 2007 and later {$IFEND}
Delphi 10.1 Berlin - 31 Delphi XE3 - 24 Delphi XE2 - 23 Delphi XE - 22 Delphi 2010 - 21 Delphi 2009 - 20 Delphi 2007 - 18.5 Delphi 2006 - 18 Delphi 2005 - 17 Delphi 8 - 16 Delphi 7 - 15 Delphi 6 - 14 判断当前 Delphi 的运行库版本:
procedure TForm1.FormCreate(Sender: TObject); begin Edit1.Text := FloatToStr(System.CompilerVersion); end;
Category Symbol DCC32 DCC64 DCCOSX DCCIOSARM DCCIOS32 DCCAARM DCCIOSARM64 Comments Since XE2 Since XE2 Since XE3 Since XE3 In XE5 Since XE8 Compiler DCC DEFINED DEFINED DEFINED DEFINED DEFINED DEFINED DEFINED VER310 DEFINED DEFINED DEFINED DEFINED DEFINED DEFINED DEFINED For Delphi XE8, compiler version 29.0 has VER310 defined. For a list of compiler versions, see Compiler Versions. Platform CONSOLE DEFINED DEFINED DEFINED DEFINED DEFINED DEFINED DEFINED Defined if an application is being compiled as a console application. IOS not defined not defined not defined DEFINED DEFINED N/A DEFINED Defined if the target platform is iOS. *New* in XE4/iOS NATIVECODE DEFINED DEFINED DEFINED DEFINED DEFINED DEFINED DEFINED Since Delphi.Net MSWINDOWS DEFINED DEFINED not defined not defined not defined not defined not defined Indicates that the operating environment is Windows. Use MSWINDOWS to test for any flavor of the Windows platform instead of WIN32. WIN32 DEFINED not defined not defined not defined not defined not defined not defined Target platform is the native 32-bit Windows platform. WIN64 not defined DEFINED not defined not defined not defined not defined not defined Target platform is 64-bit Windows. *New* in XE2/x64 MACOS not defined not defined DEFINED DEFINED DEFINED not defined not defined Target platform is Mac OS X. *New* in XE2/OSX MACOS32 not defined not defined DEFINED DEFINED DEFINED not defined not defined Target platform is 32-bit Mac OS X. *New* in XE2/OSX LINUX not defined not defined not defined not defined not defined not defined not defined Since Kylix LINUX32 not defined not defined not defined not defined not defined not defined not defined Since Kylix POSIX not defined not defined DEFINED DEFINED DEFINED DEFINED DEFINED Since Kylix POSIX32 not defined not defined DEFINED DEFINED DEFINED DEFINED DEFINED Since Kylix ANDROID not defined not defined not defined not defined not defined DEFINED not defined Defined if the target platform is Android. *New in XE5 CPU CPUARM not defined not defined not defined DEFINED not defined DEFINED DEFINED Defined if the CPU is based on the ARM architecture, such as the Delphi mobile compiler for the iOS device (DCCIOSARM.EXE). *New* in XE4/iOS CPU386 DEFINED not defined DEFINED not defined DEFINED not defined not defined Indicates that the CPU is an Intel 386 or later. CPUX86 DEFINED not defined DEFINED not defined DEFINED not defined not defined CPU is an Intel 386 or later on any platform. *New* in XE2/x64 CPUX64 not defined DEFINED not defined not defined not defined not defined not defined The CPU supports the x86-64 instruction set, and is in a 64-bit environment. *New* in XE2/x64 CPU32BITS DEFINED not defined DEFINED DEFINED DEFINED DEFINED not defined The CPU is in a 32-bit environment, such as DCC32.EXE. *New* in XE8 CPU64BITS not defined DEFINED not defined not defined not defined not defined DEFINED The CPU is in a 64-bit environment, such as DCC64.EXE. *New* in XE8 CPUARM32 not defined not defined not defined DEFINED not defined DEFINED not defined The CPU is in a 32-bit ARM environment, such as DCCIOSARM.EXE. *New* in XE8 CPUARM64 not defined not defined not defined not defined not defined not defined DEFINED The CPU is in a 64-bit ARM environment, such as DCCIOSARM64.EXE. *New* in XE8 Availability ALIGN_STACK not defined not defined DEFINED not defined DEFINED not defined not defined Defined in code that may be shared with the OS X compiler and another compiler on another platform such as Linux that does not have a rigid stack alignment requirement. For more information, see Eli Boling's blog at http://blogs.embarcadero.com/eboling/2009/05/20/5607 . *New* in XE2/OSX ASSEMBLER DEFINED DEFINED DEFINED not defined DEFINED not defined not defined Assembler syntax is accepted. AUTOREFCOUNT not defined not defined not defined DEFINED DEFINED DEFINED DEFINED Defined for compilers that use automatic reference counting, such as the Delphi mobile compilers. *New* in XE4/iOS EXTERNALLINKER not defined not defined not defined DEFINED not defined DEFINED DEFINED Defined for compilers that have an external linker and the LLVM code generator; the Delphi mobile compilers have the external ld linker and use LLVM as code generator. *New* in XE4/iOS UNICODE DEFINED DEFINED DEFINED DEFINED DEFINED DEFINED DEFINED UNICODE is defined as the default string type. CONDITIONALEXPRESSIONS DEFINED DEFINED DEFINED DEFINED DEFINED DEFINED DEFINED Tests for the use of the $IF directive. ELF not defined not defined not defined not defined not defined not defined not defined Defined when targeting Executable and Linkable Format (ELF) files. NEXTGEN not defined not defined not defined DEFINED DEFINED DEFINED DEFINED Defined for compilers (such as the Delphi mobile compilers) that use "next-generation" language features, such as 0-based strings. *New* in XE4/iOS PC_MAPPED_EXCEPTIONS not defined not defined DEFINED not defined DEFINED not defined not defined Defined when compiling on a platform or for a target platform that uses address maps instead of stack frames to unwind exceptions (such as OS X). *New* in XE2. PIC never never DEFINED if -P is specified never DEFINED if -P is specified always defined never Defined for platforms that require Position-Independent Code (PIC), such as OS X. UNDERSCOREIMPORTNAME DEFINED not defined DEFINED not defined DEFINED not defined not defined Defined for compilers that add a leading underscore (for example, in names of dynamic libraries imported from Mac OS). *New* in XE4/iOS WEAKREF not defined not defined not defined DEFINED DEFINED DEFINED DEFINED Defined for compilers that can use weak references (the [weak] attribute). *New* in XE4/iOS WEAKINSTREF not defined not defined not defined DEFINED DEFINED DEFINED DEFINED Defined when weak references are defined for instances. *New* in XE4/iOS WEAKINTFREF not defined not defined not defined DEFINED DEFINED DEFINED DEFINED Defined when weak references are defined for interfaces. *New* in XE4/iOS
In the table column heads:
DCC32 is the 32-bit Windows Delphi compiler.DCC64 is the 64-bit Windows Delphi compiler.DCCOSX is the Mac OS X Delphi compiler.DCCIOSARM is the Delphi compiler for 32-bit iOS Devices.DCCIOS32 is the Delphi compiler for iOS Simulators.DCCAARM.EXE is the Delphi compiler for Android devices.DCCIOSARM64 is the Delphi compiler for 64-bit iOS devices.1 2 3 4 5 6 7 8 {$IFDEF CONDITIONALEXPRESSIONS} {$IF CompilerVersion >= 17.0} {$DEFINE HAS_INLINE} { $IFEND } {$IF RTLVersion >= 14.0} {$DEFINE HAS_ERROUTPUT} { $IFEND } { $ENDIF }