1

VisualStudio2008ではなくVisualStudio2010でVC9コンパイラを使用していることを判断するための(Microsoft固有の)CPPマクロはありますか? コンパイラ_MSC_VERのバージョンを返すので、VS2010マルチターゲティング機能を使用すると、VS2008と同じ結果が得られます。

違いを知りたい理由は、より大きなプロジェクトから削除されたコードを含む新しいVS2010プロジェクトを作成したためです。とにかくVS2008から「すぐに」移行するので、VS2008のものを「そのまま」残しました。新しいvcxprojと一緒にvcprojファイルを作成する手間をかけたくありませんでした。

今のところ、コードが独自のDLLにコンパイルされているかどうかを示すために、独自のマクロを定義しました。それは問題なく動作しますが、もう少しエレガントなものがあればいいのですが。

4

2 に答える 2

1

_MSC_VERコンパイラのバージョンを返します

それがあなたが本当に望んでいることのように聞こえます(または私は誤解していますか?)。

VS2008のコンパイラ(紛らわしいことにVC9またはcl.exe 15.0とも呼ばれます)が使用されている_MSC_VER場合、1500以上の値が返されます。VS2010のコンパイラが使用されている場合(VC10またはclとも呼ばれます) .exe 16.0)、_MSV_VER1600と評価されます。

于 2010-06-14T21:09:23.550 に答える
0

解決策はないようです。カスタムマクロは、私が望むほどエレガントでなくても機能します。

于 2010-06-18T13:41:42.450 に答える