4

我混合了 C++ 项目(托管和非托管)。非托管正在使用许多库,例如 boost。它们都包含在 stdafx.h 文件中。我试图有两个单独的预编译头文件,一个是托管的(stdafx.h),一个是非托管的(stdafxManaged.h)。但是,当我从托管代码中包含 stdafxManaged.h 时,我收到一条错误消息:

错误 C2855:命令行选项“/clr”与预编译头文件不一致

因此,我为 stdasfManaged.cpp 打开公共语言运行时支持 (/clr) 并收到以下错误:

错误 C1852:'Debug\xxx.pch' 不是有效的预编译头文件

其中 xxx 是项目的名称,对于项目中的所有非托管 .cpp 文件,它都显示为错误。

有谁知道如何修复此错误或有任何指向教程的链接,该教程告诉您如何为混合代码设置多个预编译头文件?

4

1 回答 1

4

这实际上是可能的。确保 /clr 对 .cpp 文件处于活动状态,并且预编译头文件和预编译头输出文件设置与常规 stdafx.h 和 $(TargetName).pch 不同。

于 2013-07-26T15:57:50.243 回答