【问题标题】:What is the compiler version for Delphi 2010?Delphi 2010 的编译器版本是什么?
【发布时间】:2009-09-02 17:51:53
【问题描述】:

在 Delphi 2010 中,如果我想这样做:

{$IFDEF VER999}
//some delphi 2010-specific code here
{$ENDIF}

我需要使用什么版本来代替“999”?

【问题讨论】:

标签: delphi delphi-2010


【解决方案1】:

这是list of compiler versions

{$IFDEF VER40}  - Turbo pascal 4
{$IFDEF VER50}  - Turbo pascal 5
{$IFDEF VER55}  - Turbo pascal 5.5
{$IFDEF VER60}  - Turbo pascal 6
{$IFDEF VER70}  - Borland pascal 7 (And turbo pascal 1.5 for windows)
{$IFDEF VER80}  - Delphi 1
{$IFDEF VER90}  - Delphi 2
{$IFDEF VER100} - Delphi 3
{$IFDEF VER120} - Delphi 4
{$IFDEF VER130} - Delphi 5
{$IFDEF VER140} - Delphi 6
{$IFDEF VER150} - Delphi 7
{$IFDEF VER160} - Delphi 8
{$IFDEF VER170} - Delphi 2005
{$IFDEF VER180} - Delphi 2006
{$IFDEF VER180} - Delphi 2007
{$IFDEF VER185} - Delphi 2007
{$IFDEF VER200} - Delphi 2009
{$IFDEF VER210} - Delphi 2010
{$IFDEF VER220} - Delphi XE
{$IFDEF VER230} - Delphi XE2
{$IFDEF VER240} - Delphi XE3
{$IFDEF VER250} - Delphi XE4
{$IFDEF VER260} - Delphi XE5
{$IFDEF VER265} - Appmethod 1.0
{$IFDEF VER270} - Delphi XE6
{$IFDEF VER280} - Delphi XE7
{$IFDEF VER290} - Delphi XE8
{$IFDEF VER300} - Delphi 10 Seattle
{$IFDEF VER310} - Delphi 10.1 Berlin
{$IFDEF VER320} - Delphi 10.2 Tokyo

在 Delphi 2007 中,VER180VER185定义。这是为了向后兼容 Delphi 2006,并确保您也可以专门检测 D2007。

我不确定他们为什么在 '06 和 '07 之间这样做,但对于其他版本则不然。对我来说似乎不一致(但事实并非如此 - 请参阅下面 Barry Kelly 的评论)。

【讨论】:

  • 2006年到2007年的事情是2007年的编译器使用相同的DCU格式,所以人们的组件仍然可以工作。
  • 有人会将 Delphi XE3 添加到此列表中吗?我猜它的 VER240 ?
  • 我已经添加了XE6和XE7
【解决方案2】:

如果您使用的是 Delphi 6 及更高版本,您可以使用CompilerVersion

{$IF CompilerVersion >= 18.5}
//some code only compiled for Delphi 2007 and later
{$IFEND}
德尔福 10.2 东京 - 32 德尔福 10.1 柏林 - 31 德尔福 10 西雅图 - 30 德尔福 XE8 - 29 德尔福 XE7 - 28 德尔福 XE6 - 27 应用方法 1.0 - 26.5 德尔福 XE5 - 26 德尔福 XE4 - 25 德尔福 XE3 - 24 德尔福 XE2 - 23 德尔福 XE - 22 德尔福 2010 - 21 德尔福 2009 - 20 德尔福 2007 - 18.5 德尔福 2006 - 18 德尔福 2005 - 17 德尔福 8 - 16 德尔福 7 - 15 德尔福 6 - 14

【讨论】:

  • 我为最近的 Delphi (XE3..XE7) 添加了编译器版本
  • 请添加 XE8 (29)、RAD 10 西雅图 (30) 和 RAD 10.1 柏林 (31)
  • CompilerVersion 常量的值与 VER### 定义中的值相同!
  • docwiki.embarcadero.com/RADStudio/en/Compiler_Versions 现在包含所有版本的定义和此常量值
【解决方案3】:

{$IFDEF VER210}

【讨论】:

【解决方案4】:

这是一个带有条件定义的wiki page

【讨论】:

    【解决方案5】:

    如果您正在创建需要在当前和旧版本的 Delphi 中运行的代码,则与 Jason 的评论相同,您可能需要执行以下操作:

    {$IF CompilerVersion > 18.5} 
       //Delphi 2009 or higher
       //Unicode version of code
    {$ELSE}
       //Delphi 2007 and earlier
       //NON-Unicode version of code
    {$IFEND}
    

    【讨论】:

    • 如果条件编译的原因是Unicode或缺少Unicode,请使用{$IFDEF UNICODE}
    • 只要您只支持 Delphi 6+。在 Delphi 6 之前没有 {$IF}
    猜你喜欢
    • 2012-01-06
    • 1970-01-01
    • 2021-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多