/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++”文件夹。
单击“输出文件”属性页。
修改“展开带属性的源”属性。