Подтвердить что ты не робот

Как избавиться от _WIN32_WINNT не определено предупреждение?

_WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h)

Эта ошибка продолжает появляться во время моей компиляции. Кажется, это не влияет на компиляцию, но как я могу избавиться от нее? Я что-то рискую, игнорируя его?

4b9b3361

Ответ 1

Он определен для вас через WinSDKVer.h. Поэтому просто определите его явно в верхней части исходного кода (например, в начале stdafx.h), и вы избавитесь от предупреждения.

При определении того же значения (по сравнению с _WIN32_WINNT_MAXVER от WinSDKVer.h) вряд ли что-то сломает.

Например, WinSDKVer.h пакета разработки программного обеспечения Windows® (SDK) для Windows 7 и .NET Framework 3.5 с пакетом обновления 1 содержит:

// This list contains the highest version constants supported by content 
// in the Windows SDK.

// [...]
#define _WIN32_WINNT_MAXVER     0x0601

Ответ 2

Установите его в самую старую операционную систему Windows, в которой вы хотите, чтобы ваша программа работала. Возможные значения приведены в этой статье MSDN, Использование заголовков Windows.

Вы можете определить эти символы, используя оператор #define в каждом исходного файла или путем указания опции компилятора /D, поддерживаемой Visual С++.

Например, чтобы установить WINVER в исходный файл, используйте следующее утверждение:

 #define WINVER 0x0502    // Windows Server 2003 with SP1, Windows XP with SP2

Чтобы установить _WIN32_WINNT в исходный файл, используйте следующий оператор:

#define _WIN32_WINNT 0x0502    // Windows Server 2003 with SP1, Windows XP with SP2

Чтобы установить _WIN32_WINNT с помощью параметра /D компилятора, используйте следующую команду:

cl -c /D_WIN32_WINNT=0x0502 source.cpp

Ответ 3

Примечание: #define _WIN32_WINNT должен иметь перед любой заголовочный файл, включая "stdafx.h".

Ответ 4

Решение в VS2019

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

fooobar.com/info/405291/...

Однако после прочтения решения я установил опцию компилятора в своей среде IDE, которая называется Visual Studio 2019.

Для тех, кто хочет установить его там быстро и хочет знать его местоположение (поскольку эти вещи меняются от выпуска IDE к выпуску, или, может быть, кто-то более знаком с другой IDE), вот куда это пошло.

enter image description here

Свойства конфигурации
С /C++
препроцессор
Определения препроцессора
_WIN32_WINNT = 0x0502