确定何时在VS2010中使用VC90编译器而不是VS2008?

时间:2010-06-14 20:07:17

标签: c++ visual-c++ macros visual-c++-2008 visual-c++-2010

是否有一个(特定于Microsoft的)CPP宏来确定我在Visual Studio 2010中使用VC9编译器而不是Visual Studio 2008? _MSC_VER返回编译器版本,因此使用VS2010多目标功能,我将获得与VS2008相同的结果。

想要了解差异的原因是我创建了一个新的VS2010项目,其中包含从较大项目中删除的代码。我只是“按原样”离开了VS2008的东西,因为我们“很快就会离开VS2008”而且我不想经历创建 vcproj 文件和新的<的麻烦强> vcxproj

现在,我刚刚定义了自己的宏来指示代码是否被编译到自己的DLL中;它工作得很好,但如果有更优雅的东西会很好。

2 个答案:

答案 0 :(得分:1)

  

_MSC_VER返回编译器版本

听起来这就是你真正想要的东西(或者我误解了吗?)。

如果正在使用VS2008的编译器(混淆地也称为VC9或cl.exe 15.0),那么_MSC_VER将返回一个大于或等于1500的值。如果来自VS2010的编译器是使用(也称为VC10或cl.exe 16.0),然后_MSV_VER将评估为1600。

答案 1 :(得分:0)

似乎没有解决方案,即使它不像我想的那样优雅,也可以使用自定义宏。