Определить при использовании компилятора VC90 в VS2010 вместо VS2008? - PullRequest
1 голос
/ 15 июня 2010

Существует ли (специфичный для Microsoft) макрос CPP, чтобы определить, когда я использую компилятор VC9 в Visual Studio 2010, а не Visual Studio 2008? _MSC_VER возвращает версию компилятора , поэтому с функцией многоцелевого нацеливания VS2010 я получу тот же результат, что и с VS2008.

Причиной желания узнать разницу является то, что я создал новый проект VS2010, который содержит код, удаленный из более крупного проекта. Я просто оставил VS2008 «как есть», так как мы все равно скоро «уходим» от VS2008, и я не хотел ломать голову над созданием файла vcproj вместе с новым vcxproj .

Сейчас я только что определил свой собственный макрос, чтобы указать, скомпилирован ли код в его собственную DLL или нет; это работает просто отлично, но было бы неплохо, если бы было что-то более элегантное.

Ответы [ 2 ]

1 голос
/ 15 июня 2010

_MSC_VER возвращает версию компилятора

Похоже, это то, что вы действительно хотите (или я неправильно понимаю?).

Если компилятор из VS2008(что сбивает с толку также известный как VC9 или cl.exe 15.0), тогда _MSC_VER вернет значение, которое больше или равно 1500. Если используется компилятор из VS2010 (также известный как VC10 или cl.exe)16,0), тогда _MSV_VER будет оцениваться до 1600.

0 голосов
/ 18 июня 2010

Кажется, что нет решения, пользовательский макрос работает, даже если он не так элегантен, как хотелось бы.

...