Reputation: 6633
All project created with MSVC have stdafx, which is precompiled headers, which I know what they are but what about targetver.h ? It includes SDKDDKVer.h, and I can't find what is that header about.
What is this for ?
Upvotes: 24
Views: 46228
Reputation: 2875
Line 193 of the SDKDDKVer.h
(in SDK 8.1) states:
"if versions aren't already defined, default to most current"
This comment is specifically referring to the _WIN32_WINNT
and NTDDI_VERSION
macros.
So..
SDKDDKVer.h
applies default values unless the macros have already been defined#define _WIN32_WINNT 0x0601
#define NTDDI_VERSION 0x06010000
SDKDDKVer.h
header file has 'constant' values defined for all of the SDK versions. For example:#define _WIN32_WINNT_WINXP 0x0501
#define _WIN32_WINNT_WIN7 0x0601
#define _WIN32_WINNT_WIN8 0x0602
_WIN32_WINNT
and NTDDI_VERSION
in a header file called TargetVer.h
, which you would reference in your pre-compiled header StdAfx.h
.#ADDTIONAL READING#
Upvotes: 3
Reputation: 30418
targetver.h
and SDKDDKVer.h
are used to control what functions, constants, etc. are included into your code from the Windows headers, based on the OS that you want your program to support. I believe that targetver.h
sets defaults to using the latest version of Windows unless the defines are specified elsewhere.
SDKDDKVer.h
is the header file that actually defines the #defines
that represent each version of Windows, IE, etc.
Upvotes: 13