Tous les projets créés avec MSVC ont stdafx, qui est des en-têtes précompilés, que je connais, mais qu'en est-il de targetver.h? Il comprend SDKDDKVer.h, et je ne trouve pas de quoi parle cet en-tête.
À quoi ça sert ?
targetver.h
et SDKDDKVer.h
sont utilisés pour contrôler quelles fonctions, constantes, etc. sont incluses dans votre code à partir des en-têtes Windows, en fonction du système d'exploitation que votre programme doit prendre en charge. Je crois que targetver.h
définit par défaut l'utilisation de la dernière version de Windows, sauf si les définitions sont spécifiées ailleurs.
SDKDDKVer.h
est le fichier d'en-tête qui définit réellement le #defines
qui représentent chaque version de Windows, IE, etc.
Ligne 193 du SDKDDKVer.h
(dans le SDK 8.1) indique:
"si les versions ne sont pas déjà définies, par défaut la plus récente"
Ce commentaire fait spécifiquement référence au _WIN32_WINNT
et NTDDI_VERSION
macros.
Alors..
SDKDDKVer.h
applique les valeurs par défaut sauf si les macros ont déjà été définies#define _WIN32_WINNT 0x0601
#define NTDDI_VERSION 0x06010000
SDKDDKVer.h
le fichier d'en-tête a des valeurs "constantes" définies pour toutes les versions du SDK. Par exemple:#define _WIN32_WINNT_WINXP 0x0501
#define _WIN32_WINNT_WIN7 0x0601
#define _WIN32_WINNT_WIN8 0x0602
_WIN32_WINNT
et NTDDI_VERSION
dans un fichier d'en-tête appelé TargetVer.h
, que vous feriez référence dans votre en-tête précompilé StdAfx.h
.