为什么在Delphi XE5中将{$ IFDEF MSWINDOWS}替换为{$ IF defined(MSWINDOWS)}?

问题描述 投票:12回答:1

在XE5中,所有条件编译,例如

{$IFDEF MSWINDOWS} 

被替换为

{$IF defined(MSWINDOWS)}

例如,XE4中的System.Diagnostics.pas具有

...
implementation

{$IFDEF MSWINDOWS}
uses Winapi.Windows;
{$ENDIF}
{$IFDEF MACOS}
uses Macapi.Mach;
{$ENDIF}

{ TStopwatch }
...

现在在XE5中看起来像:

...
implementation
{$IF defined(MSWINDOWS)}
uses Winapi.Windows;
{$ELSEIF defined(MACOS)}
uses Macapi.Mach;
{$ELSEIF defined(POSIX)}
uses Posix.Time;
{$ENDIF}

{ TStopwatch }
...

还有什么特殊的原因我也应该迁移类似的调用吗?

delphi conditional-statements delphi-xe5 conditional-compilation defined
1个回答
14
投票

根据Delphi文档:

© www.soinside.com 2019 - 2024. All rights reserved.