4

VC++ プロジェクトを Visual Studio 2005 (VC8) から Visual Studio 2008 (VC9) に移行中です。ソリューションの一部のプロジェクトでは、プロジェクト設定の [追加のライブラリ ディレクトリ] フィールドにサード パーティ ライブラリへのパスが含まれています。パスは次のようになります:
..\SomeLibrary\Lib\vc9\x86

$(ConfigurationName) を使用して "Debug" または "Release" を置き換えるのとほぼ同じ方法で、Visual Studio の "Property Page Macros" の 1 つを使用してコンパイラ バージョンを置き換えることができれば、非常に便利です。次のようなものが最適です:
..\SomeLibrary\Lib\ $(CompilerVersion) \x86

残念ながら、適切なマクロが見つかりません。

「マクロ」と言うときは、C/C++ プリプロセッサ マクロではなく、Visual Studio の「プロパティ ページ マクロ」を指していることに注意してください。私の知る限り、プロジェクト設定でプリプロセッサ ディレクティブを使用することはできません。

これを行う方法を知っている人はいますか?

4

3 に答える 3

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

より複雑な例については、ブーストがVC++バージョンをどのように処理しているかをここで確認してください

于 2009-12-08T16:47:59.347 に答える
2

プロパティ ページ マクロ $(PlatformToolsetVersion) または $(PlatformToolset) を使用できます。たとえば、vc++ 2012 の場合、$(PlatformToolsetVersion) は "110" に解決され、$(PlatformToolset) は "v110" に解決されます。したがって、「vc$(PlatformToolsetVersion)」をパスに追加すると、vc11 の下に「vc110」が追加され、vc9 の下に「vc90」が追加されます。

于 2013-03-09T21:26:13.007 に答える
1

試し_MSC_VERましたか?Microsoft の C++ コンパイラの場合、これはコンパイラのメジャー バージョン番号とマイナー バージョン番号を示します。区切り記号として使用できます。

于 2009-12-08T15:54:44.773 に答える