2016-09-23 93 views
7

我有这样一段代码:

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

回答

10

您正在使用错误的指令。 SYMBOL_PLATFORM控制符号为的警告标记为平台特定。您的警告涉及单元标记的平台特定。

UNIT_PLATFORM控制这些警告。

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

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


还有为你工作了这一点为自己一个非常简单的方法。看看我上面链接的两个文档主题。他们的标题是:

  • W1002符号 '%s' 是特定于平台(德尔福)
  • W1005单位 '%s' 的特定于平台(德尔福)

编译器警告你收到的名字的警告为W1005。这是您需要知道的用于确定使用哪个指令来控制它的全部内容。如果您在查找它们时遇到任何问题,只需在此例中搜索警告名称W1005即可。或者参考documentation that lists them all