我正在修改一个Interop项目,但我很困惑如何在单个.cpp文件中应用/ FU编译器选项,以匹配“引用”部分下添加的所有引用,尽管该文件实际上并未列在“强制#using文件”下。
只有名为"MyProject.Interop.cpp"
的文件列出了此/ FU选项。
我遵循这样的假设,也许是因为cpp文件与项目文件的名称匹配,但是我可以将MyProject.Interop.cpp重命名为Bob.cpp,并且最终还是将/ FU选项设置为任何dll。我添加到参考。
如果您实际上在.vcxproj
文件中查找,则不会引用/ FU选项。如果我在C ++ \ Advanced下的高级部分中手动添加一个,则它会出现在XML中的ForcedIncludeFiles
标签下。
因此具有以下项目设置
<Reference Include="MyCSharpLibrary">
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
</Reference>
[/FU
将出现在C ++工具的Command Line
部分下]
我也看过它是否继承了任何特殊的.props文件,但没有。
之所以这样,是因为我想拆分MyProject.Interop.cpp中所有类的实现,以便按类组织它们,但是由于不为隐式#using
生成了它们,所以它们无法编译这些文件
有人知道项目设置的含义吗,使这个文件很特别?
经过大量摆弄项目并研究了各种选项之后,答案是,任何启用了/ clr的.cpp文件都会为项目参考部分中包含的每个参考自动获得/FU
选项