Обновление WINVER и _WIN32_WINNTUpdate WINVER and _WIN32_WINNT

Visual C++ больше не поддерживает создание программ для Windows 95, Windows 98, Windows ME, Windows NT и Windows 2000.Visual C++ no longer supports targeting Windows 95, Windows 98, Windows ME, Windows NT or Windows 2000. Если ваши макросы WINVER или _WIN32_WINNT предназначены для одной из этих версий Windows, необходимо изменить такие макросы.If your WINVER or _WIN32_WINNT macros are assigned to one of these versions of Windows, you must modify the macros. При обновлении проекта, созданного с помощью более ранней версии Visual C++, могут появиться ошибки компиляции, связанные с макросами WINVER или _WIN32_WINNT , если они назначены версии Windows, которая больше не поддерживается.When you upgrade a project that was created by using an earlier version of Visual C++, you may see compilation errors related to the WINVER or _WIN32_WINNT macros if they are assigned to a version of Windows that is no longer supported.

ЗаметкиRemarks

Чтобы изменить макросы, в файле заголовка (например, targetver.h, который включается при создании проекта для Windows) добавьте следующие строки.To modify the macros, in a header file (for example, targetver.h which is included when you create a project that targets Windows), add the following lines.

#define WINVER 0x0A00
#define _WIN32_WINNT 0x0A00

В данном случае целевой операционной системой является Windows 10.This targets the Windows 10 operating system. Эти значения перечислены в файле заголовка Windows SDKDDKVer.h, который также определяет макросы для каждой версии Windows.These values are listed in the Windows header file SDKDDKVer.h, which also defines macros for each Windows version. Перед включением файла SDKDDKVer.h необходимо добавить выражение #define.You should add the #define statement before including SDKDDKVer.h. Далее приводятся строки из версии SDKDDKVer.h для Windows 10, которые кодируют значения для каждой версии Windows.Here are the lines from the Windows 10 version of SDKDDKVer.h that encode the values for each version of Windows:

//
// _WIN32_WINNT version constants
//
#define _WIN32_WINNT_NT4                    0x0400 // Windows NT 4.0
#define _WIN32_WINNT_WIN2K                  0x0500 // Windows 2000
#define _WIN32_WINNT_WINXP                  0x0501 // Windows XP
#define _WIN32_WINNT_WS03                   0x0502 // Windows Server 2003
#define _WIN32_WINNT_WIN6                   0x0600 // Windows Vista
#define _WIN32_WINNT_VISTA                  0x0600 // Windows Vista
#define _WIN32_WINNT_WS08                   0x0600 // Windows Server 2008
#define _WIN32_WINNT_LONGHORN               0x0600 // Windows Vista
#define _WIN32_WINNT_WIN7                   0x0601 // Windows 7
#define _WIN32_WINNT_WIN8                   0x0602 // Windows 8
#define _WIN32_WINNT_WINBLUE                0x0603 // Windows 8.1
#define _WIN32_WINNT_WINTHRESHOLD           0x0A00 // Windows 10
#define _WIN32_WINNT_WIN10                  0x0A00 // Windows 10

Если эти версии Windows отсутствуют в просматриваемой копии SDKDDKVer.h, возможно, вы используете старую версию пакета SDK Windows.If you don't see all of these versions of Windows listed in a copy of SDKDDKVer.h that you're looking at, you probably are using an older version of the Windows SDK. По умолчанию для проектов Win32 в Visual Studio 2017 используется пакет SDK Windows 10.By default, Win32 projects in Visual Studio 2017 use the Windows 10 SDK.

Примечание

Значения могут не сработать, если включить в приложение внутренние заголовки MFC.Values are not guaranteed to work if you include internal MFC headers in your application.

Также можно определить этот макрос с помощью параметра компилятора /D.You can also define this macro by using the /D compiler option. Для получения дополнительной информации см. раздел Определения препроцессора (/D).For more information, see /D (Preprocessor Definitions).

Дополнительные сведения о значении этих макросов см. в разделе Использование заголовков Windows.For more information about the meanings of these macros, see Using the Windows Headers.

См. такжеSee also

Журнал изменений Visual C++Visual C++ change history