把两个分部用C和C++的工程合并在一起 出现error C2143: 语法错误 : 缺少“}”(在“常量”的前面)

如题所述

个人感觉你的C++中TRUE和FALSE已经被定义,也就是说你再重复定义。

1)你注释掉这个枚举;
2)把本来项目中的Boolean 替换成 BOOL 试验一下

另外C++已经支持bool 型了,不用自己来定义了。追问

这个问题是出现在c的程序里面,我试了你这种方法,出现了上百个错误。其中还有个错误时“error C2065: “BOOL”: 未声明的标识符”....

追答

可是你怎么保证你的项目在编译的时候,部分是用C的编译器,部分使用C++的编译器呢?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-05
能详细点吗?这个应该不是编码问题。C和C++的代码不能简单的合并,会出现编译问题,但是编译器报警不准确,就出现了你图中的情况。
我用过的方法:
1.动态库加载,即把C库做成.dll,用C++加载调用。
2.把所有c语言的文件后缀都改成.cpp
3.做成两个工程,用socket通信。追问

现在就是老师要求合并成一个工程。那个结构体Boolean在后面的程序中定义了很多东西,我想改成bool型就出现上百个错误....

追答

那就把C语言文件的后缀都改成.cpp。
题外话,你老师估计没编过多少代码,这么蛋疼的事情至少给你指点一下方向啊。

第2个回答  2014-03-05
合并好麻烦的,TRUE,FALSE 这两个常量 已经在别的地方定义了,此处 可注释起来即可。
相似回答
大家正在搜