使用MSVC创建的所有项目都有stdafx,这是预编译的头文件,我知道它们是什么,但是targetver.h呢?它包括SDKDDKVer.h,我找不到那个标题。
这是为了什么?
答案 0 :(得分:10)
targetver.h
和SDKDDKVer.h
用于根据您希望程序支持的操作系统,从Windows标头中控制代码中包含的函数,常量等。我相信targetver.h
将默认设置为使用最新版本的Windows,除非在别处指定了定义。
SDKDDKVer.h
是实际定义代表每个版本的Windows,IE等的#defines
的头文件。
答案 1 :(得分:3)
SDKDDKVer.h
的第193行(在SDK 8.1中)声明:
“如果尚未定义版本,则默认为最新版本
此评论专门指代_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
中引用该文件。