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

WeG*_*ars 8 delphi cross-platform compiler-directives delphi-xe7

我有这段代码:

INTERFACE

{$WARN SYMBOL_PLATFORM OFF}
USES
   Winapi.Windows, etc, {$IFDEF MSWINDOWS}Vcl.FileCtrl, {$ENDIF} System.IniFiles;
{$WARN SYMBOL_PLATFORM ON}
Run Code Online (Sandbox Code Playgroud)

编译器显示:

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

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

Dav*_*nan 13

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

使用控制这些警告UNIT_PLATFORM.

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

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


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

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

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