根据VC++编译器版本进行条件编译

Hop*_*pyx 4 migration vc8 visual-studio visual-c++-2008 visual-c++

我正在将VC++项目从Visual Studio 2005(VC8)迁移到Visual Studio 2008(VC9).解决方案中的某些项目在项目设置的"附加库目录"字段中有第三方库的路径.路径看起来像这样:
..\SomeLibrary\Lib\vc9\x86

如果我可以使用Visual Studio的"属性页宏"来替换编译器版本,那将非常有用,就像我可以使用$(ConfigurationName)替换"Debug"或"Release"一样.像下面这样的东西是完美的:
..\SomeLibrary\Lib\$(CompilerVersion)\x86

不幸的是,我找不到合适的宏.

请注意,当我说"宏"时,我指的是Visual Studio的"Property Page Macros",而不是C/C++预处理器宏.据我所知,您不能在项目设置中使用预处理程序指令.

有谁知道这样做的方法?

Kea*_*eks 7

用途_MSC_VER:

#ifndef _MSC_VER
  // not VC++
#elif _MSC_VER < 1400
  // older than VC++ 2005
#elif _MSC_VER < 1500
  // VC++ 2005
#elif _MSC_VER < 1600
  // VC++ 2008
#elif _MSC_VER < 1700
  // VC++ 2010
#else
  // Future versions
#endif
Run Code Online (Sandbox Code Playgroud)

有关更复杂的示例,请参阅此处的 boost如何处理VC++版本