PE (portable executable)ヘッダー フラグ(Delphi)
Delphi コンパイラ指令のリスト:インデックス への移動
|
種類 |
フラグ |
|
構文 |
{$SetPEFlags <整数式>} {$SetPEOptFlags <整数式>} |
|
スコープ |
ローカル |
Microsoft の仕様では、PE(portable executable)ヘッダー フラグを利用して、アプリケーションで OS サービスとの互換性を示す、または OS の拡張サービスをリクエストすることを実現します。これらの指令では、ユーザーのアプリケーションをハイエンドの NT システムで調整するための強力なオプションが用意されています。
警告: これらの指令で指定されるビット値に対してマスクやエラー チェックはありません。設定したビット値の組み合わせが正しくない場合は、実行ファイルが破損することがあります。
これらの指令では、それぞれ PE ファイル ヘッダーの Characteristics フィールドと PE ファイル オプション ヘッダーの DLLCharacteristics フィールドにフラグ ビットを設定できます。$SetPEFlags を使用してセットされる Characteristics フラグの多くは、オブジェクト ファイルやライブラリ専用です。$SetPEOptFlags を使用してセットされる DLLCharacteristics は、DLL のエントリ ポイントを呼び出す時点を記述するフラグです。
これらの指令の <整数式> には Delphi 定数識別子(Windows.pas で定義された IMAGE_FILE_xxxx の各定数など)を指定できます。複数の定数を OR を使用して同時に指定できます。
これらの指令をソース コードで複数回使用できます。複数の指令で指定されたフラグ値は、厳密に累積的に処理されます。つまり、最初の指令で $03 を設定し、2 番目で $10 を設定した場合は、リンク時に実行可能ファイルに書き込まれる値は $13 です(さらにリンカによって PE フラグの各フィールドに通常設定されるビット値が追加される)。
これらの指令は、リンク前のソース コードに含まれる場合にのみ、出力ファイルに影響します。つまり、これらの指令を通常のユニットではなく、.dpr ファイルや .dpk ファイルに配置する必要があります。exe の記述の指令と同様に、これらの指令をユニット ソース コードに追加してもエラーになりません。ただし、ユニット ソースにあるこれらの指令が出力ファイル(exe や dll)に影響するのは、ユニット ソースが出力ファイルのリンク時に再コンパイルされた場合のみです。
PE ヘッダーに関連する 5 つのオプションは、IDE の ページから利用できます。