Я смотрел какой-то код, и у них была эта строка: #define WINVER 0x0501
в stdafx.h
файле? Зачем вам нужно определить WINVER
? Как это влияет на ваш код? Может кто-нибудь объяснить?
Что такое WINVER?
Ответ 1
WINVER определяет минимальный SDK платформы, необходимый для создания вашего приложения, которое, в свою очередь, будет определять во время компиляции, какие подпрограммы будут найдены заголовками.
Вы можете использовать это, чтобы во время компиляции проверить, что ваше приложение будет работать в Windows 2000 (0x0500), например, или в Windows XP (0x0501).
Страница MSDN на Изменяет WINVER и _WIN32_WINNT подробнее об этом.
Ответ 2
WINVER определяет минимальную систему Windows, в которой может работать программа. Там более подробное объяснение в MSDN. Что означает #define WINVER 0x0501
, так это то, что для запуска программы требуется Windows XP или Server 2003, и поэтому она может использовать функциональные возможности Windows до этой версии.
Ответ 3
WINVER означает версию Windows. В двух словах, если вы создаете определенную версию Windows, доступны некоторые API-интерфейсы, которые недоступны в предыдущих версиях.
Ответ 4
Определив макрос WINVER
, вы обнаружите набор функций, относящихся к определенной версии Windows. Например, если вы определяете его как #define WINVER 0x0502
, вы не сможете использовать TaskDialog, который доступен только в Windows Vista. Более подробно вы можете прочитать статью Использование заголовков Windows в MSDN.