22

MSVC で作成されたすべてのプロジェクトには、プリコンパイル済みヘッダーである stdafx があります。SDKDDKVer.h が含まれていますが、そのヘッダーの内容がわかりません。

これは何のため ?

4

2 に答える 2

12

targetver.hプログラムでSDKDDKVer.hサポートする OS に基づいて、Windows ヘッダーからコードに含まれる関数、定数などを制御するために使用されます。targetver.h定義が他の場所で指定されていない限り、デフォルトで Windows の最新バージョンを使用するように設定されていると思います。

SDKDDKVer.h#definesは、 Windows、IE などの各バージョンを表すを実際に定義するヘッダー ファイルです。

于 2012-05-10T18:30:28.620 に答える
3

SDKDDKVer.h(SDK 8.1の) 行 193 には次のように記載されています。

「バージョンがまだ定義されていない場合、デフォルトで最新」

このコメントは、具体的には_WIN32_WINNTおよびNTDDI_VERSIONマクロを参照しています。

そう..

  1. SDKDDKVer.hマクロがまだ定義されていない限り、デフォルト値を適用します
  2. 次のコードを使用して、マクロを明示的に定義できます
    • #define _WIN32_WINNT 0x0601
    • #define NTDDI_VERSION 0x06010000
  3. 興味深いことに、SDKDDKVer.hヘッダー ファイルには、すべての SDK バージョンに対して定義された「定数」値があります。例えば:
    • #define _WIN32_WINNT_WINXP 0x0501
    • #define _WIN32_WINNT_WIN7 0x0601
    • #define _WIN32_WINNT_WIN8 0x0602
  4. 慣習の 1 つは、と呼ばれるヘッダー ファイルで と_WIN32_WINNTを定義することです。これは、プリコンパイル済みヘッダーで参照します。NTDDI_VERSIONTargetVer.hStdAfx.h

追加の読み物

于 2016-09-21T14:58:26.593 に答える