PE (portable executable)ヘッダー フラグ(Delphi)

提供:RAD Studio (日本語)
移動: 案内, 検索

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 の プロジェクト > オプション... > Delphi コンパイラ > リンク ページから利用できます。

関連リンク

他言語版