2016-09-23 4 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' は{$ SYMBOL_PLATFORM OFFをWARN}が存在するにもかかわらず

プラットフォームに固有 。
なぜですか?

答えて

10

誤った指示を使用しています。 SYMBOL_PLATFORMは、シンボルの警告を制御します。マークされたプラットフォーム固有。あなたの警告はユニットマークされたプラットフォーム固有のものです。

これらの警告はUNIT_PLATFORMで制御してください。

ユニット全体に、プラットフォームヒント指示文を使用して、すべてのプラットフォームで使用できない可能性のある素材が含まれているものとしてタグ付けされています。マルチデバイスアプリケーションを作成している場合は、ユニットによって問題が発生する可能性があります。たとえば、OleAutoで定義されたオブジェクトを使用するユニットには、PLATFORMディレクティブを使用してタグを付けることができます。

$ WARN UNIT_PLATFORM ON/OFFコンパイラ・ディレクティブは、プラットフォーム・ディレクティブが指定されているユニットで、プラットフォーム・ディレクティブに関するすべての警告をオンまたはオフにします。


あなた自身のためにこれを動作させるためには本当に簡単な方法があります。上にリンクした2つのドキュメンテーションのトピックを見てください。そのタイトルは以下のとおりです。

  • W1002シンボル '%s' は(デルファイ)プラットフォームに固有のものです
  • W1005ユニットは '%s' はプラットフォームに固有です(デルファイ)

コンパイラの警告あなたは受け取った警告にW1005と名前をつけます。これは、それを制御するためにどのディレクティブを使用するかを決定するために知っておく必要があるだけです。見つけられない場合は、警告名W1005を検索してください。または、documentation that lists them allを参照してください。