在Delphi中使用宏代码,如C / C ++

时间:2014-09-01 11:15:29

标签: delphi macros pascal

我在Delphi / Pascal语法中找到了这个宏代码,但我无法使用它! Delphi是否支持像C / C ++这样的宏代码,或者这个宏是用于另一种语言,如Lazarus ???

宏:

{$ifdef Profile}
  {$define __TRACE__:= try }
  {$define __END__:= finally ShowMessage('Hello !'); end;}
{$else}
  {$define __TRACE__:= //}
  {$define __END__:=}
{$endif}

我正试图这样使用:

    ...
   __TRACE__
     // Somethings
    __END__
    ...

我抓住了这个编译器消息:

[dcc32 Error] Unit1.pas(37): E2003 Undeclared identifier: '__TRACE__'
[dcc32 Error] Unit1.pas(38): E2066 Missing operator or semicolon
[dcc32 Error] Unit1.pas(39): E2003 Undeclared identifier: '__END__'

{对不起,如果我的英语不好}

1 个答案:

答案 0 :(得分:2)

这些是Free Pascal macros。对于Delphi编译器来说,没有任何可用的东西。一些选择:

  • 使用日志框架(有许多可用的良好日志库)将跟踪调试工具添加到代码中。坦率地说,这将是对此处所示内容的巨大改进。
  • 手动展开代码。这是每次您在代码中看到__TRACE__时,请将其替换为内联$IFDEF。根本没有吸引力。