MSVC で作成されたすべてのプロジェクトには、プリコンパイル済みヘッダーである stdafx があります。SDKDDKVer.h が含まれていますが、そのヘッダーの内容がわかりません。
これは何のため ?
MSVC で作成されたすべてのプロジェクトには、プリコンパイル済みヘッダーである stdafx があります。SDKDDKVer.h が含まれていますが、そのヘッダーの内容がわかりません。
これは何のため ?
targetver.h
プログラムでSDKDDKVer.h
サポートする OS に基づいて、Windows ヘッダーからコードに含まれる関数、定数などを制御するために使用されます。targetver.h
定義が他の場所で指定されていない限り、デフォルトで Windows の最新バージョンを使用するように設定されていると思います。
SDKDDKVer.h
#defines
は、 Windows、IE などの各バージョンを表すを実際に定義するヘッダー ファイルです。
SDKDDKVer.h
(SDK 8.1の) 行 193 には次のように記載されています。
「バージョンがまだ定義されていない場合、デフォルトで最新」
このコメントは、具体的には_WIN32_WINNT
およびNTDDI_VERSION
マクロを参照しています。
そう..
SDKDDKVer.h
マクロがまだ定義されていない限り、デフォルト値を適用します#define _WIN32_WINNT 0x0601
#define NTDDI_VERSION 0x06010000
SDKDDKVer.h
ヘッダー ファイルには、すべての SDK バージョンに対して定義された「定数」値があります。例えば:
#define _WIN32_WINNT_WINXP 0x0501
#define _WIN32_WINNT_WIN7 0x0601
#define _WIN32_WINNT_WIN8 0x0602
_WIN32_WINNT
を定義することです。これは、プリコンパイル済みヘッダーで参照します。NTDDI_VERSION
TargetVer.h
StdAfx.h