12

我有这段代码:

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

4

1 回答 1

18

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

使用 控制这些警告UNIT_PLATFORM

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

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


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

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

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

于 2016-09-23T09:49:01.307 回答