C ++ Interop DLL和引用,以及/ FU Forced Includes指令

问题描述 投票:0回答:1

我正在修改一个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生成了它们,所以它们无法编译这些文件

有人知道项目设置的含义吗,使这个文件很特别?

c# visual-studio-2015 c++-cli interop
1个回答
0
投票

经过大量摆弄项目并研究了各种选项之后,答案是,任何启用了/ clr的.cpp文件都会为项目参考部分中包含的每个参考自动获得/FU选项

© www.soinside.com 2019 - 2024. All rights reserved.