C++ 有没有一种方法允许c++;?

C++ 有没有一种方法允许c++;?,c++,c,C++,C,我需要在C++/CLI项目中使用C库的各个部分。我强迫C文件编译为C++,问题是库使用很多隐式枚举来进行C++比较所不允许的整数比较。现在我可以正确地强制转换所有这些,但如果可能的话,我希望在不修改原始库代码的情况下获得结果(因为库仍在开发中,我希望具有即插即用功能)。有没有一种方法允许C++隐式地转换这些枚举?< /p> < p>学究回答是否 > < /P> < > C++标准比C标准严格,从整数到枚举器或从空> */COD>到t*的隐式转换不在框外。 您面前有两个解决方案: 您的编译器可

我需要在C++/CLI项目中使用C库的各个部分。我强迫C文件编译为C++,问题是库使用很多隐式枚举来进行C++比较所不允许的整数比较。现在我可以正确地强制转换所有这些,但如果可能的话,我希望在不修改原始库代码的情况下获得结果(因为库仍在开发中,我希望具有即插即用功能)。有没有一种方法允许C++隐式地转换这些枚举?< /p> < p>学究回答是<强>否<强> > < /P> < > C++标准比C标准严格,从整数到枚举器或从<>空> */COD>到t*<代码>的隐式转换不在框外。


您面前有两个解决方案:

  • 您的编译器可能有这样一个开关,使用编译器开关触发非标准行为(通常被视为“功能”)并不罕见;我不知道有这样的转换,但有这么多

  • 您可以将C代码编译为C(如有必要,可以链接到单独的库中)
  • 您可以编辑C代码,使其同时编译为C和C++
  • 最后,由于它是一个正在开发的库,您可以要求作者确保他们的代码同时编译为C和C++

你能发布一些代码/例子吗?为什么不直接编译C代码,然后用C编译器把它的函数链接到ExcC++中?是的,它应该是在盒子里工作的。@ BaMuMuGuang:对不起,我没有指定我要使用的片段是那个库中的.exe工具的一部分,而不是一个库项目。我所做的是把.c和.h文件从工具项目中引用到同一个解决方案中的项目中。为什么要强迫它们编译成C++?如果标题缺少外部“C”,您可以将该位放入包装文件中,并使用它们来代替。由于C和C++有很多(并非总是)细微的差别,所以编译C代码几乎总是最好的。C,最终,库的开发者确实想到了这个,并且我可以在中介库项目中使用一个头文件,然后我可以使用它来为我的项目使用。