/Fx (挿入されたコードのマージ)
更新 : 2007 年 11 月
挿入されたコードをソースにマージして、各ソース ファイルのコピーを生成します。
/Fx
解説
マージされたソース ファイルと元のソース ファイルを区別するために、/Fx ではファイル名と拡張子の間に拡張子 .mrg を挿入します。たとえば、属性付きコードが含まれ、/Fx で構築された MyCode.cpp という名前のファイルは、次のコードが含まれた MyCode.mrg.cpp という名前のファイルを作成します。
//+++ Start Injected Code
[no_injected_text(true)]; // Suppress injected text, it has
// already been injected
#pragma warning(disable: 4543) // Suppress warnings about skipping
// injected text
#pragma warning(disable: 4199) // Suppress warnings from attribute
// providers
//--- End Injected Code
.mrg ファイル内で、属性のために挿入されたコードは、次のように区切って表されます。
//+++ Start Injected Code
...
//--- End Injected Code
no_injected_text 属性が .mrg ファイルに埋め込まれ、テキストを再挿入せずに .mrg ファイルをコンパイルできます。
.mrg ソース ファイルは、コンパイラによって挿入されたソース コードを表示するためのファイルであることを理解してください。.mrg ファイルは、元のソース ファイルと正確に同じ方法ではコンパイルまたは実行されない場合があります。
.mrg ファイルでは、マクロは展開されません。
挿入されたコードを使用するヘッダー ファイルがプログラムに含まれている場合、/Fx はこのヘッダー用に .mrg.h ファイルを生成します。/Fx では、挿入されたコードを使用しないインクルード ファイルはマージされません。
Visual Studio 開発環境でこのコンパイラ オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。詳細については、「方法 : プロジェクト プロパティ ページを開く」を参照してください。
[C/C++] フォルダをクリックします。
[出力ファイル] プロパティ ページをクリックします。
[属性ソースの展開] プロパティを変更します。
このコンパイラ オプションをコードから設定するには
- ExpandAttributedSource を参照してください。