VERxxx | __TURBOC__ | ||
Delphi/C++Builder 11 Alexandria | VER350 | 0x0076 | Delphi 28 / BDS22 / RAD Studio 11 Alexandria |
Delphi/C++Builder 10.4 Sydney | VER340 | 0x0750 | Delphi 27 / BDS21 / RAD Studio 10.4 Sydney |
Delphi/C++Builder 10.3 Rio | VER330 | 0x0740 | Delphi 26 / BDS20 / RAD Studio 10.3 Rio |
Delphi/C++Builder 10.2 Tokyo | VER320 | 0x0730 | Delphi 25 / BDS19 / RAD Studio 10.2 Tokyo |
Delphi/C++Builder 10.1 Berlin | VER310 | 0x0720 | Delphi 24 / BDS18 / RAD Studio 10.1 Berlin |
Delphi/C++Builder 10.0 Seattle | VER300 | 0x0710 | Delphi 23 / BDS17 / RAD Studio 10.0 Seattle |
Delphi/C++Builder XE8 | VER290 | 0x0700 | Delphi 22 / BDS16 / RAD Studio XE8 |
Delphi/C++Builder XE7 | VER280 | 0x0690 | Delphi 21 / BDS15 / RAD Studio XE7 |
Delphi/C++Builder XE6 | VER270 | 0x0680 | Delphi 20 / BDS14 / RAD Studio XE6 |
Delphi/C++Builder XE5 | VER260 | 0x0670 | Delphi 19 / BDS12 / RAD Studio XE5 |
Delphi/C++Builder XE4 | VER250 | 0x0660 | Delphi 18 / BDS11 / RAD Studio XE4 |
Delphi/C++Builder XE3 | VER240 | 0x0650 | Delphi 17 / BDS10 / RAD Studio XE3 |
Delphi/C++Builder XE2 | VER230 | 0x0640 | Delphi 16 / BDS9 / RAD Studio XE2 |
Delphi/C++Builder XE | VER220 | 0x0630 | Delphi 15 / BDS8 / RAD Studio XE |
Delphi/C++Builder 2010 | VER210 | 0x0620 | Delphi 14 / BDS7 / RAD Studio 2010 |
Delphi/C++Builder 2009 | VER200 | 0x0610 | Delphi 12 / BDS6 / RAD Studio 2009 |
Delphi 2007 for .NET | VER190 | – | Delphi 11 / BDS5 / RAD Studio |
Delphi/C++Builder 2007 | VER180/VER185 | 0x0590 | Delphi 11 / BDS5 / RAD Studio |
Delphi/C++Builder 2006 | VER180 | 0x0570 | Delphi 10 / BDS4 |
Delphi 2005 | VER170 | – | Delphi 9 / BDS3 |
Delphi 8 for .NET Framkework | VER160 | – | BDS2 |
Delphi 7 | VER150 | – | |
Kylix 3 | VER150 | 0x0570 | |
C++BuilderX | – | 0x0564 | |
C++Builder 6 | VER140 | 0x0560 | |
Kylix 2 | VER140 | – | |
Delphi 6 | VER140 | – | |
Kylix | VER140 | – | |
C++Builder 5 | VER130 | 0x0550 | |
Borland C++ 5.5 | – | 0x0550 | |
Delphi 5 | VER130 | – | |
C++Builder 4 | VER125 | 0x0540 | |
Delphi 4 | VER120 | – | |
C++Builder 3 | VER110 | 0x0530 | |
Delphi 3 | VER100 | – | |
C++Builder | VER93 | 0x0520 | |
Borland C++ 5 | – | 0x0500 | |
Delphi 2 | VER90 | – | |
Delphi | VER80 | – | |
Borland Pascal 7.0 | VER70 | – | |
Turbo Pascal for Windows 1.5 | VER15 | – | |
Turbo Pascal for Windows 1.0 | VER10 | – | |
Turbo Pascal 6.0 | VER60 | – | |
Turbo Pascal 5.5 | VER55 | – | |
Turbo Pascal 5.0 | VER50 | – | |
Turbo Pascal 4.0 | VER40 | – | |
Turbo Pascal 3.0 | 不明 | – | |
Turbo Pascal 1.0 | 不明 | – | |
Borland C++ 4.52 | – | 0x0460 | |
Borland C++ 4.00 | – | 0x0452 | Turbo C++ 4.0と同じ |
Borland C++ 3.1 | – | 0x0410 | |
Borland C++ 3.0 | – | 0x0400 | Turbo C++ for Win3.1と同じ |
Borland C++ 2.00 | – | 0x0297 | |
Turbo C++ 1.01 | – | 0x0296 | |
Turbo C++ 1.00 | – | 0x0295 | |
Turbo C 2.0 | – | 0x018d | 0x0200かも |
Turbo C 1.5 | – | 不明 | 0x0100よりは大きいらしい |
Turbo C 1.0 | – | 0x0001 |
※VER330以降:インライン変数宣言、インライン変数の型推論、インライン定数、変数宣言を伴う for ループが使用可
※VER280以降、並列プログラミングライブラリ (System.Threading) が使用可
※VER270以降、DirectX 11 ユニットが使用可
※VER200以降、Unicode、ジェネリクス、無名メソッド使用可
※VER180以降、クラスヘルパー使用可
※VER170以降:for-in-doステートメントが使用可
※VER140以降:$IF指令が使用可
※VER120以降:動的配列、デフォルトパラメータ、implements、overload、Int64、LongWordが使用可
※VER110以降:$EXTERNALSYM、$NODEFINEが使用可
※VER100以降:interface、Assert、WideStringが使用可
VERxxxや__TURBOC__は各コンパイラの定義済みシンボルまたはマクロで、
コンパイラのバージョンを示す。
これらは、
1 2 3 |
{$IFDEF VER120} // Delphi 4の場合 {$ENDIF} |
や
1 2 3 |
#if (__TURBOC__ == 0x0540) // C++Builder 4の場合 #endif |
のように用いる。
D5とBCB5は
1 2 3 4 5 6 7 |
{$IFDEF VER130} {$IFDEF BCB} // C++Builder 5の場合 {$ELSE} // Delphi 5の場合 {$ENDIF} {$ENDIF} |
とすれば区別できるが、BCB5とBC55は区別できない。
これは、BC55がBCB5のコマンドラインコンパイラと「まったく同じもの」であるがためとのことである。
なお、KylixとDelphiは
1 2 3 |
{$IFDEF LINUX} // Kylixの場合 {$ENDIF} |
として区別できる。
Copyright © 1996, 2024 y.ohm / Yoshimasa Ohmuro / 大室 喜正
e-mail : y.ohm@ohmix.net