{$ WARN SYMBOL_PLATFORM OFF}不会关闭警告

时间:2016-09-23 08:51:58

标签: delphi cross-platform delphi-xe7 compiler-directives

我有这段代码:

INTERFACE

{$WARN SYMBOL_PLATFORM OFF}
USES
   Winapi.Windows, etc, {$IFDEF MSWINDOWS}Vcl.FileCtrl, {$ENDIF} System.IniFiles;
{$WARN SYMBOL_PLATFORM ON}

编译器显示:

  

[dcc32警告] W1005单位'Vcl.FileCtrl'是   特定于平台

即使{$ WARN SYMBOL_PLATFORM OFF}在那里 为什么?

1 个答案:

答案 0 :(得分:12)

您使用的是错误的指令。 SYMBOL_PLATFORM控制标记为特定平台的符号的警告。您的警告与标有特定平台的单元有关。

使用UNIT_PLATFORM控制这些警告。

  

整个单元被标记(使用平台提示指令),其中包含可能并非在所有平台上都可用的材料。如果您正在编写多设备应用程序,则该设备可能会导致问题。例如,使用OleAuto中定义的对象的单元可能使用PLATFORM指令进行标记。

     

$ WARN UNIT_PLATFORM ON / OFF编译器指令在指定platform指令的单元中打开或关闭有关platform指令的所有警告。

有一种非常简单的方法让您自己解决这个问题。看看我上面链接的两个文档主题。他们的头衔是:

  • W1002符号'%s'特定于平台(Delphi)
  • W1005单位'%s'特定于平台(Delphi)

您收到的编译器警告将警告命名为W1005。这是您需要知道的,以确定用于控制它的指令。如果您在查找它们时遇到任何问题,只需在此实例中搜索警告名称W1005。或者参考documentation that lists them all