【问题标题】:{$WARN SYMBOL_PLATFORM OFF} does not turn off warnings{$WARN SYMBOL_PLATFORM OFF} 不会关闭警告
【发布时间】:2017-02-01 01:38:39
【问题描述】:

我有这段代码:

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}。
为什么?

【问题讨论】:

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


    【解决方案1】:

    您使用了错误的指令。 SYMBOL_PLATFORM 控制对标记为特定平台的符号 的警告。您的警告与标记为特定平台的 unit 相关。

    使用UNIT_PLATFORM 控制这些警告。

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

    $WARN UNIT_PLATFORM ON/OFF 编译器指令以指定平台指令的单位打开或关闭有关平台指令的所有警告。


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

    • W1002 符号“%s”特定于平台 (Delphi)
    • W1005 单元“%s”特定于平台 (Delphi)

    您收到的编译器警告将该警告命名为 W1005。这是您确定使用哪个指令来控制它所需的全部信息。如果您在查找它们时遇到任何问题,只需搜索警告名称,在这种情况下为 W1005。或参考documentation that lists them all

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-11
      • 1970-01-01
      • 1970-01-01
      • 2018-08-26
      • 2015-05-19
      • 2011-04-05
      • 2023-03-09
      • 1970-01-01
      相关资源
      最近更新 更多