Есть ли макрос для определения операционной системы ...? - PullRequest
3 голосов
/ 23 ноября 2010

Я планирую написать кусок кода, используя API Media Foundation, который будет доступен после Vista.Я хочу добавить код внутри блока #if что-то вроде ...

#if <SomeMacro>
// all the classes using MediaFoundation go here.
#endif

Я не смог найти макрос для определения версии операционной системы.Как это обычно делается на Windows?Я обнаружил, что _WIN32 и _WIN64 обнаруживают 32-битные и 64-битные, но нет макросов для определения доступности API.Есть ли лучший способ изолировать код на основе доступности API в vc ..?

Спасибо, Abhinay.

Ответы [ 3 ]

2 голосов
/ 25 ноября 2010

Не совсем. Лучшее, что вы можете сделать, это отключить макрос WIN32_WINNT, но это не поможет вам, если кто-то развернется и попытается запустить ваше приложение на XP.

2 голосов
/ 23 ноября 2010
1 голос
/ 23 ноября 2010

Попробуйте макросы _WIN32_WINNT и WINVER. Больше информации здесь: http://msdn.microsoft.com/en-us/library/aa383745%28VS.85%29.aspx

Попробуйте что-то вроде,

#ifdef _WIN32_WINNT_VISTA
    #if WINVER >= _WIN32_WINNT_VISTA
        //....
    #endif
#endif
...