[Delphi] Delphi版本号对照
<p>VER300 Delphi Seattle / C++Builder Seattle 23 230<br> (Delphi:Win32/Win64/OSX/iOS32/iOS64/Android) (C++Builder:Win32/Win64/OSX/iOS32/iOS64/Android) <br>VER290 Delphi XE8 / C++Builder XE8 22 220<br> (Delphi:Win32/Win64/OSX/iOS32/iOS64/Android) (C++Builder:Win32/Win64/OSX/iOS32/iOS64/Android) <br>VER280 Delphi XE7 / C++Builder XE7 21 210<br> (Delphi:Win32/Win64/OSX/iOS/Android) (C++Builder:Win32/Win64/OSX/iOS/Android) <br>VER270 Delphi XE6 / C++Builder XE6 20 200<br> (Delphi:Win32/Win64/OSX/iOS/Android) (C++Builder:Win32/Win64/OSX/iOS/Android) <br>VER260 Delphi XE5 / C++Builder XE5 19 190<br> (Delphi:Win32/Win64/OSX/iOS/Android) (C++Builder:Win32/Win64/OSX/iOS) <br>VER250 Delphi XE4 / C++Builder XE4 18 180<br> (Delphi:Win32/Win64/OSX/iOS) (C++Builder:Win32/Win64/OSX) <br>VER240 Delphi XE3 / C++Builder XE3 17 170<br> (Delphi:Win32/Win64/OSX) (C++Builder:Win32/Win64/OSX) <br>VER230 Delphi XE2 / C++Builder XE2 16 160<br> (Delphi:Win32/Win64/OSX) (C++Builder:Win32/OSX) <br> 161 is the version for the five FireMonkey packages at XE2 Update 2:<br> fmi161.bpl, fmx161.bpl, fmxase161.bpl, fmxdae161.bpl, and fmxobj161.bpl.<br>VER220 Delphi XE / C++Builder XE (Win32) 15 150<br>VER210 Delphi 2010 / C++Builder 2010 (Win32) 14 140<br>VER200 Delphi 2009 / C++Builder 2009 (Win32) 12 120<br>VER190 Delphi 2007 for .Net * 11 110<br>VER180 or VER185 Delphi 2007 / C++Builder 2007 for Win32 * 11 110<br>VER180 Delphi 2006 / C++Builder 2006 (Win32/.Net) and Delphi/C++Builder 2007 for Win32 10 100<br>VER170 Delphi 2005 (Win32/.Net) 9 90<br>VER160 Delphi 8 for .Net 8 80<br>VER150 Delphi 7 (and 7.1) 7 70<br>VER140 Delphi 6 / C++Builder 6 6 60<br>VER130 Delphi 5 / C++Builder 5 5 NA<br>VER125 C++Builder 4 4 NA<br>VER120 Delphi 4 4 NA<br>VER110 C++Builder 3 3 NA<br>VER100 Delphi 3 3 NA<br>VER93 C++Builder 1 NA NA <br>VER90 Delphi 2 2 NA<br>VER80 Delphi 1 1 NA<br>VER70 Borland Pascal 7.0 NA NA<br>VER15 Turbo Pascal for Windows 1.5 NA NA<br>VER10 Turbo Pascal for Windows 1.0 NA NA<br>VER60 Turbo Pascal 6.0 NA NA<br>VER55 Turbo Pascal 5.5 NA NA<br>VER50 Turbo Pascal 5.0 NA NA<br>VER40 Turbo Pascal 4.0 NA NA<br>VER30 : Turbo Pascal 3<br>VER20 : Turbo Pascal 2<br>VER10 :Turbo Pascal 1<br><br><strong>编译时可以判断版本号:</strong></p><p> </p>
<div class="cnblogs_code">
<pre>{$IF CompilerVersion >= 18.5}
//some code only compiled for Delphi 2007 and later
{$IFEND}</pre>
</div>
<p> </p>
<p>Delphi 10.3 RIO - 33<br>Delphi 10.2 Tokyo - 32<br>Delphi 10.1 Berlin - 31<br><br>Delphi XE3 - 24<br>Delphi XE2 - 23<br><br>Delphi XE - 22<br>Delphi 2010 - 21<br>Delphi 2009 - 20<br>Delphi 2007 - 18.5<br>Delphi 2006 - 18<br>Delphi 2005 - 17<br>Delphi 8 - 16<br>Delphi 7 - 15<br>Delphi 6 - 14<br><br><strong>判断当前 Delphi 的运行库版本:</strong><br><br></p>
<div class="cnblogs_code">
<pre>procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text := FloatToStr(System.CompilerVersion);
end;</pre>
</div>
<p> <img src="https://img2020.cnblogs.com/blog/1107379/202101/1107379-20210107125701491-1103998404.png" alt="" loading="lazy"></p>
<p> </p>
<p> </p>
<h2>Compiler Directives</h2>
<table border="0" cellspacing="0" cellpadding="0"><colgroup><col width="428"><col width="554"></colgroup>
<tbody>
<tr>
<td class="xl67" width="428" height="22">
<div>
<div>
<div>
<div lang="en" dir="ltr">Delphi Compiler Directive</div>
</div>
</div>
</div>
</td>
<td class="xl67" width="554">Associated Symbol</td>
</tr>
<tr>
<td class="xl65" height="22">Align fields (Delphi)</td>
<td class="xl65">{$A},{$ALIGN}</td>
</tr>
<tr>
<td class="xl65" height="22">Application type (Delphi)</td>
<td class="xl65">{$APPTYPE}</td>
</tr>
<tr>
<td class="xl65" height="22">Assert directives (Delphi)</td>
<td class="xl65">{$C},{$ASSERTIONS}</td>
</tr>
<tr>
<td class="xl65" height="22">Boolean short-circuit evaluation (Delphi compiler directive)</td>
<td class="xl65">{$B},{$BOOLEVAL}</td>
</tr>
<tr>
<td class="xl65" height="22">Code align (Delphi)</td>
<td class="xl65">{$CODEALIGN}</td>
</tr>
<tr>
<td class="xl65" height="22">Conditional compilation (Delphi)</td>
<td class="xl65">{$IFDEF}, {$IFNDEF}, {$IF}, {$ELSEIF}, {$ELSE}, {$ENDIF}, {$IFEND}</td>
</tr>
<tr>
<td class="xl65" height="22">Debug information (Delphi)</td>
<td class="xl65">{$D},{$DEBUGINFO}</td>
</tr>
<tr>
<td class="xl65" height="22">DEFINE directive (Delphi)</td>
<td class="xl65">{$DEFINE}</td>
</tr>
<tr>
<td class="xl65" height="22">DENYPACKAGEUNIT directive (Delphi)</td>
<td class="xl65">{$DENYPACKAGEUNIT}</td>
</tr>
<tr>
<td class="xl65" height="22">Description (Delphi)</td>
<td class="xl65">{$D},{$DESCRIPTION}</td>
</tr>
<tr>
<td class="xl65" height="22">DESIGNONLY directive (Delphi)</td>
<td class="xl65">{$DESIGNONLY}</td>
</tr>
<tr>
<td class="xl65" height="22">ELSE (Delphi)</td>
<td class="xl65">{$ELSE}</td>
</tr>
<tr>
<td class="xl65" height="22">ELSEIF (Delphi)</td>
<td class="xl65">{$ELSEIF}</td>
</tr>
<tr>
<td class="xl65" height="22">ENDIF directive (Delphi)</td>
<td class="xl65">{$ENDIF}</td>
</tr>
<tr>
<td class="xl65" height="22">Executable extension (Delphi)</td>
<td class="xl65">{$E},{$EXTENSION}</td>
</tr>
<tr>
<td class="xl65" height="22">Export symbols (Delphi)</td>
<td class="xl65">{$ObjExportAll}</td>
</tr>
<tr>
<td class="xl65" height="22">Extended syntax (Delphi)</td>
<td class="xl65">{$X},{$EXTENDEDSYNTAX}</td>
</tr>
<tr>
<td class="xl65" height="22">Extended type compatibility (Delphi)</td>
<td class="xl65">{$EXTENDEDCOMPATIBILITY}</td>
</tr>
<tr>
<td class="xl65" height="22">External Symbols (Delphi)</td>
<td class="xl65">{$EXTERNALSYM [ 'typeNameInHpp' [ 'typeNameInHppUnion' ]]}</td>
</tr>
<tr>
<td class="xl65" height="22">Floating point precision control (Delphi for x64)</td>
<td class="xl65">{$EXCESSPRECISION}</td>
</tr>
<tr>
<td class="xl65" height="22">HIGHCHARUNICODE directive (Delphi)</td>
<td class="xl65">{$HIGHCHARUNICODE}</td>
</tr>
<tr>
<td class="xl65" height="22">Hints (Delphi)</td>
<td class="xl65">{$HINTS}</td>
</tr>
<tr>
<td class="xl65" height="22">HPP emit (Delphi)</td>
<td class="xl65">{$HPPEMIT}</td>
</tr>
<tr>
<td class="xl65" height="22">IFDEF directive (Delphi)</td>
<td class="xl65">{$IFDEF}</td>
</tr>
<tr>
<td class="xl65" height="22">IF directive (Delphi)</td>
<td class="xl65">{$IF}</td>
</tr>
<tr>
<td class="xl65" height="22">IFEND directive (Delphi)</td>
<td class="xl65">{$IFEND}</td>
</tr>
<tr>
<td class="xl65" height="22">IFNDEF directive (Delphi)</td>
<td class="xl65">{$IFNDEF}</td>
</tr>
<tr>
<td class="xl65" height="22">IFOPT directive (Delphi)</td>
<td class="xl65">{$IFOPT}</td>
</tr>
<tr>
<td class="xl65" height="22">Image base address</td>
<td class="xl65">{$IMAGEBASE}</td>
</tr>
<tr>
<td class="xl65" height="22">Implicit Build (Delphi)</td>
<td class="xl65">{$IMPLICITBUILD}</td>
</tr>
<tr>
<td class="xl65" height="22">Imported data</td>
<td class="xl65">{$G},{$IMPORTEDDATA}</td>
</tr>
<tr>
<td class="xl65" height="22">Include file (Delphi)</td>
<td class="xl65">{$I},{$INCLUDE}</td>
</tr>
<tr>
<td class="xl65" height="22">Input output checking (Delphi)</td>
<td class="xl65">{$I},{$IOCHECKS}</td>
</tr>
<tr>
<td class="xl65" height="22">Compiler directives for libraries or shared objects (Delphi)</td>
<td class="xl65">{$LIBPREFIX}, {$LIBSUFFIX}, {$LIBVERSION}</td>
</tr>
<tr>
<td class="xl65" height="22">Legacy IFEND (Delphi)</td>
<td class="xl65">{$LEGACYIFEND}</td>
</tr>
<tr>
<td class="xl65" height="22">Link object file (Delphi)</td>
<td class="xl65">{$L file},{$LINK file}</td>
</tr>
<tr>
<td class="xl65" height="22">Local symbol information (Delphi)</td>
<td class="xl65">{$L+},{$LOCALSYMBOLS}</td>
</tr>
<tr>
<td class="xl65" height="22">Long strings (Delphi)</td>
<td class="xl65">{$H},{$LONGSTRINGS}</td>
</tr>
<tr>
<td class="xl65" height="22">Memory allocation sizes (Delphi)</td>
<td class="xl65">{$M},{$MINSTACKSIZE},{$MAXSTACKSIZE}</td>
</tr>
<tr>
<td class="xl65" height="22">MESSAGE directive (Delphi)</td>
<td class="xl65">{$MESSAGE }</td>
</tr>
<tr>
<td class="xl65" height="22">METHODINFO directive (Delphi)</td>
<td class="xl65">{$METHODINFO}</td>
</tr>
<tr>
<td class="xl65" height="22">Minimum enumeration size (Delphi)</td>
<td class="xl65">{$Z1},{$Z2},{$Z4},{$MINENUMSIZE 1},{$MINENUMSIZE 2},{$MINENUMSIZE 4}</td>
</tr>
<tr>
<td class="xl65" height="22">NODEFINE directive (Delphi)</td>
<td class="xl65">{$NODEFINE [ 'typeNameInHpp' [ 'typeNameInHppUnion' ]]}</td>
</tr>
<tr>
<td class="xl65" height="22">NOINCLUDE (Delphi)</td>
<td class="xl65">{$NOINCLUDE}</td>
</tr>
<tr>
<td class="xl65" height="22">OBJTYPENAME directive (Delphi)</td>
<td class="xl65">{$OBJTYPENAME typeIdent ['{B|N}typeNameInObj']}</td>
</tr>
<tr>
<td class="xl65" height="22">Old type layout (Delphi)</td>
<td class="xl65">{$OLDTYPELAYOUT ON}</td>
</tr>
<tr>
<td class="xl65" height="22">Open String Parameters (Delphi)</td>
<td class="xl65">{$P},{$OPENSTRINGS}</td>
</tr>
<tr>
<td class="xl65" height="22">Optimization (Delphi)</td>
<td class="xl65">{$O},{$OPTIMIZATION}</td>
</tr>
<tr>
<td class="xl65" height="22">Overflow checking (Delphi)</td>
<td class="xl65">{$Q},{$OVERFLOWCHECKS}</td>
</tr>
<tr>
<td class="xl65" height="22">PE (portable executable) header flags (Delphi)</td>
<td class="xl65">{$SetPEFlags},{$SetPEOptFlags}</td>
</tr>
<tr>
<td class="xl65" height="22">PE header operating system version</td>
<td class="xl65">{$SETPEOSVERSION}</td>
</tr>
<tr>
<td class="xl65" height="22">PE header subsystem version</td>
<td class="xl65">{$SETPESUBSYSVERSION}</td>
</tr>
<tr>
<td class="xl65" height="22">PE header user version</td>
<td class="xl65">{$SETPEUSERVERSION}</td>
</tr>
<tr>
<td class="xl65" height="22">Pentium-safe FDIV operations (Delphi)</td>
<td class="xl65">{$U},{$SAFEDIVIDE}</td>
</tr>
<tr>
<td class="xl65" height="22">Pointer Math (Delphi)</td>
<td class="xl65">{$POINTERMATH}</td>
</tr>
<tr>
<td class="xl65" height="22">Range checking</td>
<td class="xl65">{$R},{$RANGECHECKS}</td>
</tr>
<tr>
<td class="xl65" height="22">Real48 compatibility (Delphi)</td>
<td class="xl65">{$REALCOMPATIBILITY}</td>
</tr>
<tr>
<td class="xl65" height="22">Regions</td>
<td class="xl65">{$REGION},{$ENDREGION}</td>
</tr>
<tr>
<td class="xl65" height="22">Reserved address space for resources (Delphi, Linux)</td>
<td class="xl65">{$M},{$RESOURCERESERVE}</td>
</tr>
<tr>
<td class="xl65" height="22">Resource file (Delphi)</td>
<td class="xl65">{$R},{$RESOURCE}</td>
</tr>
<tr>
<td class="xl65" height="22">RTTI directive (Delphi)</td>
<td class="xl65">{$RTTI INHERIT|EXPLICIT}</td>
</tr>
<tr>
<td class="xl65" height="22">RUNONLY directive (Delphi)</td>
<td class="xl65">{$RUNONLY}</td>
</tr>
<tr>
<td class="xl65" height="22">Run-Time Type Information (Delphi)</td>
<td class="xl65">{$M},{$TYPEINFO}</td>
</tr>
<tr>
<td class="xl65" height="22">Scoped Enums (Delphi)</td>
<td class="xl65">{$SCOPEDENUMS}</td>
</tr>
<tr>
<td class="xl65" height="22">Stack frames (Delphi)</td>
<td class="xl65">{$W},{$STACKFRAMES}</td>
</tr>
<tr>
<td class="xl65" height="22">Strong link types (Delphi)</td>
<td class="xl65">{$STRONGLINKTYPES}</td>
</tr>
<tr>
<td class="xl65" height="22">Symbol declaration and cross-reference information (Delphi)</td>
<td class="xl65">{$Y},{$REFERENCEINFO},{DEFINITIONINFO}</td>
</tr>
<tr>
<td class="xl65" height="22">Type-checked pointers (Delphi)</td>
<td class="xl65">{$T},{$TYPEDADDRESS}</td>
</tr>
<tr>
<td class="xl65" height="22">UNDEF directive (Delphi)</td>
<td class="xl65">{$UNDEF}</td>
</tr>
<tr>
<td class="xl65" height="22">Var-string checking (Delphi)</td>
<td class="xl65">{$V},{$VARSTRINGCHECKS}</td>
</tr>
<tr>
<td class="xl65" height="22">Warning messages (Delphi)</td>
<td class="xl65">{$WARN}</td>
</tr>
<tr>
<td class="xl65" height="22">Warnings (Delphi)</td>
<td class="xl65">{$WARNINGS}</td>
</tr>
<tr>
<td class="xl65" height="22">Weak packaging</td>
<td class="xl65">{$WEAKPACKAGEUNIT}</td>
</tr>
<tr>
<td class="xl65" height="22">WEAKLINKRTTI directive (Delphi)</td>
<td class="xl65">{$WEAKLINKRTTI}</td>
</tr>
<tr>
<td class="xl65" height="22">Writeable typed constants (Delphi)</td>
<td class="xl65">{$J},{$WRITEABLECONST}</td>
</tr>
<tr>
<td class="xl65" height="22">Zero-based strings (Delphi)</td>
<td class="xl65">{$ZEROBASEDSTRINGS}</td>
</tr>
</tbody>
</table>
<h2>Predefined Conditionals</h2>
<p> </p>
<table border="0" cellspacing="0" cellpadding="0"><colgroup><col width="76"><col width="200"><col span="3" width="88"><col width="97"><col width="95"><col width="88"><col width="110"><col width="575"></colgroup>
<tbody>
<tr>
<td class="xl66" rowspan="2" width="76" height="38">
<div>
<div>
<div>
<div lang="en" dir="ltr">Category</div>
</div>
</div>
</div>
</td>
<td class="xl66" rowspan="2" width="200">Symbol</td>
<td class="xl68" rowspan="2" width="88">DCC32</td>
<td class="xl68" width="88">DCC64</td>
<td class="xl68" width="88">DCCOSX</td>
<td class="xl68" width="97">DCCIOSARM</td>
<td class="xl68" width="95">DCCIOS32</td>
<td class="xl68" width="88">DCCAARM</td>
<td class="xl68" width="110">DCCIOSARM64</td>
<td class="xl66" rowspan="2" width="575">Comments</td>
</tr>
<tr>
<td class="xl66" width="88" height="19"> Since XE2 </td>
<td class="xl66" width="88"> Since XE2 </td>
<td class="xl66" width="97"> Since XE3 </td>
<td class="xl66" width="95"> Since XE3 </td>
<td class="xl66" width="88">In XE5</td>
<td class="xl66" width="110">Since XE8</td>
</tr>
<tr>
<td class="xl67" rowspan="4" width="76" height="114">Compiler</td>
<td class="xl67" width="200">DCC</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="97">DEFINED</td>
<td class="xl67" width="95">DEFINED</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="110">DEFINED</td>
<td class="xl67" width="575"> </td>
</tr>
<tr>
<td class="xl67" width="200" height="19">VER310</td>
<td class="xl67" rowspan="3" width="88">DEFINED</td>
<td class="xl67" rowspan="3" width="88">DEFINED</td>
<td class="xl67" rowspan="3" width="88">DEFINED</td>
<td class="xl67" rowspan="3" width="97">DEFINED</td>
<td class="xl67" rowspan="3" width="95">DEFINED</td>
<td class="xl67" rowspan="3" width="88">DEFINED</td>
<td class="xl67" rowspan="3" width="110">DEFINED</td>
<td class="xl67" rowspan="3" width="575">For Delphi XE8, compiler version 29.0 has <span class="font6">VER310<span class="font0"> defined.</span></span></td>
</tr>
<tr>
<td class="xl67" width="200" height="19"> </td>
</tr>
<tr>
<td class="xl67" width="200" height="57">For a list of compiler<br>versions, see Compiler<br>Versions.</td>
</tr>
<tr>
<td class="xl67" rowspan="18" width="76" height="361">Platform</td>
<td class="xl67" width="200">CONSOLE</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="97">DEFINED</td>
<td class="xl67" width="95">DEFINED</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="110">DEFINED</td>
<td class="xl67" width="575">Defined if an application is being compiled as a console application.</td>
</tr>
<tr>
<td class="xl67" rowspan="2" width="200" height="38">IOS</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="97">DEFINED</td>
<td class="xl67" rowspan="2" width="95">DEFINED</td>
<td class="xl67" rowspan="2" width="88">N/A</td>
<td class="xl67" rowspan="2" width="110">DEFINED</td>
<td class="xl67" width="575">Defined if the target platform is iOS.</td>
</tr>
<tr>
<td class="xl67" width="575" height="19">*New* in XE4/iOS</td>
</tr>
<tr>
<td class="xl67" width="200" height="19">NATIVECODE</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="97">DEFINED</td>
<td class="xl67" width="95">DEFINED</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="110">DEFINED</td>
<td class="xl67" width="575">Since Delphi.Net</td>
</tr>
<tr>
<td class="xl67" width="200" height="38">MSWINDOWS</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="88">not defined</td>
<td class="xl67" width="97">not defined</td>
<td class="xl67" width="95">not defined</td>
<td class="xl67" width="88">not defined</td>
<td class="xl67" width="110">not defined</td>
<td class="xl67" width="575">Indicates that the operating environment is Windows. Use MSWINDOWS <br>to test for any flavor of the Windows platform instead of WIN32.</td>
</tr>
<tr>
<td class="xl67" width="200" height="19">WIN32</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="88">not defined</td>
<td class="xl67" width="88">not defined</td>
<td class="xl67" width="97">not defined</td>
<td class="xl67" width="95">not defined</td>
<td class="xl67" width="88">not defined</td>
<td class="xl67" width="110">not defined</td>
<td class="xl67" width="575">Target platform is the native 32-bit Windows platform.</td>
</tr>
<tr>
<td class="xl67" rowspan="2" width="200" height="38">WIN64</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">DEFINED</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="97">not defined</td>
<td class="xl67" rowspan="2" width="95">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="110">not defined</td>
<td class="xl67" width="575">Target platform is 64-bit Windows.</td>
</tr>
<tr>
<td class="xl67" width="575" height="19">*New* in XE2/x64</td>
</tr>
<tr>
<td class="xl67" rowspan="2" width="200" height="38">MACOS</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">DEFINED</td>
<td class="xl67" rowspan="2" width="97">DEFINED</td>
<td class="xl67" rowspan="2" width="95">DEFINED</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="110">not defined</td>
<td class="xl67" width="575">Target platform is Mac OS X.</td>
</tr>
<tr>
<td class="xl67" width="575" height="19">*New* in XE2/OSX</td>
</tr>
<tr>
<td class="xl67" rowspan="2" width="200" height="38">MACOS32</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">DEFINED</td>
<td class="xl67" rowspan="2" width="97">DEFINED</td>
<td class="xl67" rowspan="2" width="95">DEFINED</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="110">not defined</td>
<td class="xl67" width="575">Target platform is 32-bit Mac OS X.</td>
</tr>
<tr>
<td class="xl67" width="575" height="19">*New* in XE2/OSX</td>
</tr>
<tr>
<td class="xl67" width="200" height="19">LINUX</td>
<td class="xl67" width="88">not defined</td>
<td class="xl67" width="88">not defined</td>
<td class="xl67" width="88">not defined</td>
<td class="xl67" width="97">not defined</td>
<td class="xl67" width="95">not defined</td>
<td class="xl67" width="88">not defined</td>
<td class="xl67" width="110">not defined</td>
<td class="xl67" width="575">Since Kylix</td>
</tr>
<tr>
<td class="xl67" width="200" height="19">LINUX32</td>
<td class="xl67" width="88">not defined</td>
<td class="xl67" width="88">not defined</td>
<td class="xl67" width="88">not defined</td>
<td class="xl67" width="97">not defined</td>
<td class="xl67" width="95">not defined</td>
<td class="xl67" width="88">not defined</td>
<td class="xl67" width="110">not defined</td>
<td class="xl67" width="575">Since Kylix</td>
</tr>
<tr>
<td class="xl67" width="200" height="19">POSIX</td>
<td class="xl67" width="88">not defined</td>
<td class="xl67" width="88">not defined</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="97">DEFINED</td>
<td class="xl67" width="95">DEFINED</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="110">DEFINED</td>
<td class="xl67" width="575">Since Kylix</td>
</tr>
<tr>
<td class="xl67" width="200" height="19">POSIX32</td>
<td class="xl67" width="88">not defined</td>
<td class="xl67" width="88">not defined</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="97">DEFINED</td>
<td class="xl67" width="95">DEFINED</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="110">DEFINED</td>
<td class="xl67" width="575">Since Kylix</td>
</tr>
<tr>
<td class="xl67" rowspan="2" width="200" height="38">ANDROID</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="97">not defined</td>
<td class="xl67" rowspan="2" width="95">not defined</td>
<td class="xl67" rowspan="2" width="88">DEFINED</td>
<td class="xl67" rowspan="2" width="110">not defined</td>
<td class="xl67" width="575">Defined if the target platform is Android.</td>
</tr>
<tr>
<td class="xl67" width="575" height="19">*New in XE5</td>
</tr>
<tr>
<td class="xl67" rowspan="15" width="76" height="304">CPU</td>
<td class="xl67" rowspan="2" width="200">CPUARM</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="97">DEFINED</td>
<td class="xl67" rowspan="2" width="95">not defined</td>
<td class="xl67" rowspan="2" width="88">DEFINED</td>
<td class="xl67" rowspan="2" width="110">DEFINED</td>
<td class="xl67" width="575">Defined if the CPU is based on the ARM architecture, such as the Delphi <br>mobile compiler for the iOS device (DCCIOSARM.EXE).</td>
</tr>
<tr>
<td class="xl67" width="575" height="19">*New* in XE4/iOS</td>
</tr>
<tr>
<td class="xl67" width="200" height="19">CPU386</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="88">not defined</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="97">not defined</td>
<td class="xl67" width="95">DEFINED</td>
<td class="xl67" width="88">not defined</td>
<td class="xl67" width="110">not defined</td>
<td class="xl67" width="575">Indicates that the CPU is an Intel 386 or later.</td>
</tr>
<tr>
<td class="xl67" rowspan="2" width="200" height="38">CPUX86</td>
<td class="xl67" rowspan="2" width="88">DEFINED</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">DEFINED</td>
<td class="xl67" rowspan="2" width="97">not defined</td>
<td class="xl67" rowspan="2" width="95">DEFINED</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="110">not defined</td>
<td class="xl67" width="575">CPU is an Intel 386 or later on any platform.</td>
</tr>
<tr>
<td class="xl67" width="575" height="19">*New* in XE2/x64</td>
</tr>
<tr>
<td class="xl67" rowspan="2" width="200" height="38">CPUX64</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">DEFINED</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="97">not defined</td>
<td class="xl67" rowspan="2" width="95">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="110">not defined</td>
<td class="xl67" width="575">The CPU supports the x86-64 instruction set, and is in a 64-bit environment.</td>
</tr>
<tr>
<td class="xl67" width="575" height="19">*New* in XE2/x64</td>
</tr>
<tr>
<td class="xl67" rowspan="2" width="200" height="38">CPU32BITS</td>
<td class="xl67" rowspan="2" width="88">DEFINED</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">DEFINED</td>
<td class="xl67" rowspan="2" width="97">DEFINED</td>
<td class="xl67" rowspan="2" width="95">DEFINED</td>
<td class="xl67" rowspan="2" width="88">DEFINED</td>
<td class="xl67" rowspan="2" width="110">not defined</td>
<td class="xl67" width="575">The CPU is in a 32-bit environment, such as DCC32.EXE.</td>
</tr>
<tr>
<td class="xl67" width="575" height="19">*New* in XE8</td>
</tr>
<tr>
<td class="xl67" rowspan="2" width="200" height="38">CPU64BITS</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">DEFINED</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="97">not defined</td>
<td class="xl67" rowspan="2" width="95">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="110">DEFINED</td>
<td class="xl67" width="575">The CPU is in a 64-bit environment, such as DCC64.EXE.</td>
</tr>
<tr>
<td class="xl67" width="575" height="19">*New* in XE8</td>
</tr>
<tr>
<td class="xl67" rowspan="2" width="200" height="38">CPUARM32</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="97">DEFINED</td>
<td class="xl67" rowspan="2" width="95">not defined</td>
<td class="xl67" rowspan="2" width="88">DEFINED</td>
<td class="xl67" rowspan="2" width="110">not defined</td>
<td class="xl67" width="575">The CPU is in a 32-bit ARM environment, such as DCCIOSARM.EXE.</td>
</tr>
<tr>
<td class="xl67" width="575" height="19">*New* in XE8</td>
</tr>
<tr>
<td class="xl67" rowspan="2" width="200" height="38">CPUARM64</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="97">not defined</td>
<td class="xl67" rowspan="2" width="95">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="110">DEFINED</td>
<td class="xl67" width="575">The CPU is in a 64-bit ARM environment, such as DCCIOSARM64.EXE.</td>
</tr>
<tr>
<td class="xl67" width="575" height="19">*New* in XE8</td>
</tr>
<tr>
<td class="xl67" rowspan="25" width="76" height="648">Availability</td>
<td class="xl65"> </td>
<td class="xl65"> </td>
<td class="xl65"> </td>
<td class="xl65"> </td>
<td class="xl65"> </td>
<td class="xl65"> </td>
<td class="xl65"> </td>
<td class="xl65"> </td>
<td class="xl65"> </td>
</tr>
<tr>
<td class="xl67" rowspan="2" width="200" height="95">ALIGN_STACK</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">DEFINED</td>
<td class="xl67" rowspan="2" width="97">not defined</td>
<td class="xl67" rowspan="2" width="95">DEFINED</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="110">not defined</td>
<td class="xl67" width="575">Defined in code that may be shared with the OS X compiler and another compiler<br>on another platform such as Linux that does not have a rigid stack alignment<br>requirement. For more information, see Eli Boling's blog at<br>http://blogs.embarcadero.com/eboling/2009/05/20/5607 .</td>
</tr>
<tr>
<td class="xl67" width="575" height="19">*New* in XE2/OSX</td>
</tr>
<tr>
<td class="xl67" width="200" height="19">ASSEMBLER</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="97">not defined</td>
<td class="xl67" width="95">DEFINED</td>
<td class="xl67" width="88">not defined</td>
<td class="xl67" width="110">not defined</td>
<td class="xl67" width="575">Assembler syntax is accepted.</td>
</tr>
<tr>
<td class="xl67" rowspan="2" width="200" height="57">AUTOREFCOUNT</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="97">DEFINED</td>
<td class="xl67" rowspan="2" width="95">DEFINED</td>
<td class="xl67" rowspan="2" width="88">DEFINED</td>
<td class="xl67" rowspan="2" width="110">DEFINED</td>
<td class="xl67" width="575">Defined for compilers that use automatic reference counting, such as the Delphi<br>mobile compilers.</td>
</tr>
<tr>
<td class="xl67" width="575" height="19">*New* in XE4/iOS</td>
</tr>
<tr>
<td class="xl67" rowspan="2" width="200" height="57">EXTERNALLINKER</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="97">DEFINED</td>
<td class="xl67" rowspan="2" width="95">not defined</td>
<td class="xl67" rowspan="2" width="88">DEFINED</td>
<td class="xl67" rowspan="2" width="110">DEFINED</td>
<td class="xl67" width="575">Defined for compilers that have an external linker and the LLVM code generator; the <br>Delphi mobile compilers have the external ld linker and use LLVM as code generator.</td>
</tr>
<tr>
<td class="xl67" width="575" height="19">*New* in XE4/iOS</td>
</tr>
<tr>
<td class="xl67" width="200" height="19">UNICODE</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="97">DEFINED</td>
<td class="xl67" width="95">DEFINED</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="110">DEFINED</td>
<td class="xl67" width="575">UNICODE is defined as the default string type.</td>
</tr>
<tr>
<td class="xl67" width="200" height="19">CONDITIONALEXPRESSIONS</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="97">DEFINED</td>
<td class="xl67" width="95">DEFINED</td>
<td class="xl67" width="88">DEFINED</td>
<td class="xl67" width="110">DEFINED</td>
<td class="xl65">Tests for the use of the $IF directive.</td>
</tr>
<tr>
<td class="xl67" width="200" height="19">ELF</td>
<td class="xl67" width="88">not defined</td>
<td class="xl67" width="88">not defined</td>
<td class="xl67" width="88">not defined</td>
<td class="xl67" width="97">not defined</td>
<td class="xl67" width="95">not defined</td>
<td class="xl67" width="88">not defined</td>
<td class="xl67" width="110">not defined</td>
<td class="xl67" width="575">Defined when targeting Executable and Linkable Format (ELF) files.</td>
</tr>
<tr>
<td class="xl67" rowspan="2" width="200" height="57">NEXTGEN</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="97">DEFINED</td>
<td class="xl67" rowspan="2" width="95">DEFINED</td>
<td class="xl67" rowspan="2" width="88">DEFINED</td>
<td class="xl67" rowspan="2" width="110">DEFINED</td>
<td class="xl67" width="575">Defined for compilers (such as the Delphi mobile compilers) that use <br>"next-generation" language features, such as 0-based strings.</td>
</tr>
<tr>
<td class="xl67" width="575" height="19">*New* in XE4/iOS</td>
</tr>
<tr>
<td class="xl67" rowspan="2" width="200" height="57">PC_MAPPED_EXCEPTIONS</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">DEFINED</td>
<td class="xl67" rowspan="2" width="97">not defined</td>
<td class="xl67" rowspan="2" width="95">DEFINED</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="110">not defined</td>
<td class="xl67" width="575">Defined when compiling on a platform or for a target platform that uses address<br>maps instead of stack frames to unwind exceptions (such as OS X).</td>
</tr>
<tr>
<td class="xl67" width="575" height="19">*New* in XE2.</td>
</tr>
<tr>
<td class="xl67" width="200" height="38">PIC</td>
<td class="xl67" width="88">never</td>
<td class="xl67" width="88">never</td>
<td class="xl67" width="88">DEFINED if -P is specified</td>
<td class="xl67" width="97">never</td>
<td class="xl67" width="95">DEFINED if <br>-P is specified</td>
<td class="xl67" width="88">always defined</td>
<td class="xl67" width="110">never</td>
<td class="xl67" width="575">Defined for platforms that require Position-Independent Code (PIC), such as OS X.</td>
</tr>
<tr>
<td class="xl67" rowspan="2" width="200" height="57">UNDERSCOREIMPORTNAME</td>
<td class="xl67" rowspan="2" width="88">DEFINED</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">DEFINED</td>
<td class="xl67" rowspan="2" width="97">not defined</td>
<td class="xl67" rowspan="2" width="95">DEFINED</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="110">not defined</td>
<td class="xl67" width="575">Defined for compilers that add a leading underscore (for example, in names of <br>dynamic libraries imported from Mac OS).</td>
</tr>
<tr>
<td class="xl67" width="575" height="19">*New* in XE4/iOS</td>
</tr>
<tr>
<td class="xl67" rowspan="2" width="200" height="40">WEAKREF</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="97">DEFINED</td>
<td class="xl67" rowspan="2" width="95">DEFINED</td>
<td class="xl67" rowspan="2" width="88">DEFINED</td>
<td class="xl67" rowspan="2" width="110">DEFINED</td>
<td class="xl67" width="575">Defined for compilers that can use weak references (the <span class="font6"><span class="font0">attribute).</span></span></td>
</tr>
<tr>
<td class="xl67" width="575" height="19">*New* in XE4/iOS</td>
</tr>
<tr>
<td class="xl67" rowspan="2" width="200" height="38">WEAKINSTREF</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="97">DEFINED</td>
<td class="xl67" rowspan="2" width="95">DEFINED</td>
<td class="xl67" rowspan="2" width="88">DEFINED</td>
<td class="xl67" rowspan="2" width="110">DEFINED</td>
<td class="xl67" width="575">Defined when weak references are defined for instances.</td>
</tr>
<tr>
<td class="xl67" width="575" height="19">*New* in XE4/iOS</td>
</tr>
<tr>
<td class="xl67" rowspan="2" width="200" height="38">WEAKINTFREF</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="88">not defined</td>
<td class="xl67" rowspan="2" width="97">DEFINED</td>
<td class="xl67" rowspan="2" width="95">DEFINED</td>
<td class="xl67" rowspan="2" width="88">DEFINED</td>
<td class="xl67" rowspan="2" width="110">DEFINED</td>
<td class="xl67" width="575">Defined when weak references are defined for interfaces.</td>
</tr>
<tr>
<td class="xl67" width="575" height="19">*New* in XE4/iOS</td>
</tr>
<tr>
<td class="xl65" height="19"> </td>
<td class="xl65"> </td>
<td class="xl65"> </td>
<td class="xl65"> </td>
<td class="xl65"> </td>
<td class="xl65"> </td>
<td class="xl65"> </td>
<td class="xl65"> </td>
<td class="xl65"> </td>
</tr>
</tbody>
</table>
<p><strong>In the table column heads:</strong></p>
<ul>
<li>DCC32 is the 32-bit Windows Delphi compiler.</li>
<li>DCC64 is the 64-bit Windows Delphi compiler.</li>
<li>DCCOSX is the Mac OS X Delphi compiler.</li>
<li>DCCIOSARM is the Delphi compiler for 32-bit iOS Devices.</li>
<li>DCCIOS32 is the Delphi compiler for iOS Simulators.</li>
<li>DCCAARM.EXE is the Delphi compiler for Android devices.</li>
<li>DCCIOSARM64 is the Delphi compiler for 64-bit iOS devices.</li>
</ul>
<p> </p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">{</span><span style="color: rgba(0, 128, 0, 1)">$IFDEF CONDITIONALEXPRESSIONS</span><span style="color: rgba(0, 128, 0, 1)">}</span>
<span style="color: rgba(0, 128, 0, 1)">{</span><span style="color: rgba(0, 128, 0, 1)">$IF CompilerVersion >= 17.0</span><span style="color: rgba(0, 128, 0, 1)">}</span>
<span style="color: rgba(0, 128, 0, 1)">{</span><span style="color: rgba(0, 128, 0, 1)">$DEFINE HAS_INLINE</span><span style="color: rgba(0, 128, 0, 1)">}</span>
<span style="color: rgba(0, 128, 0, 1)">{</span><span style="color: rgba(0, 128, 0, 1)">$IFEND</span><span style="color: rgba(0, 128, 0, 1)">}</span>
<span style="color: rgba(0, 128, 0, 1)">{</span><span style="color: rgba(0, 128, 0, 1)">$IF RTLVersion >= 14.0</span><span style="color: rgba(0, 128, 0, 1)">}</span>
<span style="color: rgba(0, 128, 0, 1)">{</span><span style="color: rgba(0, 128, 0, 1)">$DEFINE HAS_ERROUTPUT</span><span style="color: rgba(0, 128, 0, 1)">}</span>
<span style="color: rgba(0, 128, 0, 1)">{</span><span style="color: rgba(0, 128, 0, 1)">$IFEND</span><span style="color: rgba(0, 128, 0, 1)">}</span>
<span style="color: rgba(0, 128, 0, 1)">{</span><span style="color: rgba(0, 128, 0, 1)">$ENDIF</span><span style="color: rgba(0, 128, 0, 1)">}</span></pre>
</div>
<p> </p>
</div>
<div id="MySignature" role="contentinfo">
好的代码像粥一样,都是用时间熬出来的<br><br>
来源:https://www.cnblogs.com/jijm123/p/14245832.html
頁:
[1]