我可以在Visual Studio中的单个项目中混合使用C++和C吗?

Che*_*eso 16 c c++ winapi visual-studio-2008

我在VS2008中有一个Win32 DLL项目,它是用少数几个C模块编写的.
因为我希望能够在VS2008外部构建,而不依赖于VS2008,所以我制作了一个自定义makefile,它可以完成所有构建和链接步骤.这一切都设置得很好.

现在我想为这个DLL添加几个C++模块.我修改了自定义makefile以将.cpp模块编译为C++,将.c模块编译为常规C(/ Tc).这一切都有效.它把所有东西连在一起,没问题.

我可以配置VS2008项目吗?

我可以在同一个VS2008项目中混合C++和C吗?

或者我需要一个自定义构建步骤吗?

谢谢.


回答

我将VS2008项目设置为C编译.我需要将其更改为Compile As"Default".右键单击项目,选择"属性",然后选择......:

alt text http://i33.tinypic.com/qqsd8g.jpg

谢谢,帕维尔.

Pav*_*aev 9

首先,你甚至不需要/Tc自己构建它 - cl.exe使用文件扩展名来确定类型,所以.c文件默认编译为C,.cpp和.cxx文件编译为C++ .

对于VS项目,它以完全相同的方式工作,除了你不能覆盖这种行为(或者至少我不知道如何).

  • 很有帮助。事实证明,VS 中有一个选项可以设置“编译为”选项,即 /Tc 、 /Tp 或“默认”之一。我将它设置为 /Tc 。我需要将其重置为“默认”。一个OK。 (2认同)

AnT*_*AnT 6

在同一个项目中混合C和C++绝对没有问题.所有你需要做的就是在C函数和C数据结构中设计C和C++模块之间的接口,然后确保那些接口函数在C++端用C-linkage说明符声明extern "C".