使用 MSVC 创建的所有项目都有 stdafx,它是预编译的头文件,我知道它们是什么,但是 targetver.h 呢?它包括 SDKDDKVer.h,我找不到那个标题是关于什么的。
这个是来做什么的 ?
使用 MSVC 创建的所有项目都有 stdafx,它是预编译的头文件,我知道它们是什么,但是 targetver.h 呢?它包括 SDKDDKVer.h,我找不到那个标题是关于什么的。
这个是来做什么的 ?
targetver.h
并SDKDDKVer.h
用于根据您希望程序支持的操作系统来控制从 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