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.


マクロを変更するには、ヘッダー ファイル (たとえば、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 バージョンのマクロを定義する Windows ヘッダー ファイル SDKDDKVer.h にもリストされています。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. Windows の各バージョンの値をエンコードする、SDKDDKVer.h の Windows 10 バージョンの行を次に示します。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 (プリプロセッサの定義)」を参照してください。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