WINVER 및 _WIN32_WINNT 수정Modifying 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. WINVER 또는 _WIN32_WINNT 매크로가 더 이상 지원되지 않는 Windows 버전에 할당되어 있는 경우 이전 버전의 Visual C++를 사용하여 만든 프로젝트를 업그레이드하면 해당 매크로와 관련된 컴파일 오류가 표시될 수 있습니다.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

매크로를 수정하려면 헤더 파일(예: Windows를 대상으로 하는 프로젝트를 만들 때 포함된 targetver.h)에서 다음 줄을 추가합니다.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  

찾고 있는 SDKDDKVer.h의 복사본에 나열된 이러한 모든 Windows 버전이 표시되지 않는 경우 이전 버전의 Windows SDK를 사용하고 있을 수 있습니다.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. 기본적으로 Visual Studio 2017의 Win32 프로젝트는 Windows 10 SDK를 사용합니다.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 (Preprocessor Definitions)을 참조하세요.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