Что такое WINVER? - PullRequest
       20

Что такое WINVER?

26 голосов
/ 17 сентября 2009

Я просматривал какой-то код, и у них была такая строка: #define WINVER 0x0501 в stdafx.h файле? Почему вам нужно определить WINVER? Как это влияет на ваш код? Может кто-нибудь объяснить, пожалуйста?

Ответы [ 4 ]

23 голосов
/ 17 сентября 2009

WINVER определяет минимальный SDK платформы, необходимый для сборки вашего приложения, который, в свою очередь, определяет во время компиляции, какие подпрограммы найдены заголовками.

Вы можете использовать это для проверки, во время компиляции, что ваше приложение будет работать, например, в Windows 2000 (0x0500) или в Windows XP (0x0501).

Страница MSDN на Изменение WINVER и _WIN32_WINNT более подробно описывает это.

4 голосов
/ 17 сентября 2009

WINVER определяет минимальную систему Windows, на которой может работать программа. Более подробное объяснение на MSDN . Что означает #define WINVER 0x0501, так это то, что для работы программы требуется Windows XP или Server 2003, и поэтому она может использовать функции Windows вплоть до этого выпуска.

3 голосов
/ 17 сентября 2009

Определяя макрос WINVER, вы отображаете набор функций, относящихся к определенной версии Windows. Например, если вы определите его как #define WINVER 0x0502, вы не сможете использовать TaskDialog , который доступен только в Windows Vista. Подробнее об этом можно прочитать в статье Использование заголовков Windows в MSDN.

3 голосов
/ 17 сентября 2009

WINVER означает версию Windows. Короче говоря, если вы разрабатываете для определенной версии Windows, доступны некоторые API, которые недоступны в предыдущих версиях.

...