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
谢谢,帕维尔.
首先,你甚至不需要/Tc自己构建它 - cl.exe使用文件扩展名来确定类型,所以.c文件默认编译为C,.cpp和.cxx文件编译为C++ .
对于VS项目,它以完全相同的方式工作,除了你不能覆盖这种行为(或者至少我不知道如何).
在同一个项目中混合C和C++绝对没有问题.所有你需要做的就是在C函数和C数据结构中设计C和C++模块之间的接口,然后确保那些接口函数在C++端用C-linkage说明符声明extern "C".