c++ - 包含 Windows 上可能存在或不存在的 header

标签 c++ windows header conditional-compilation winapi

因此,我正在尝试处理各种版本的 Windows SDK 中的细微差别,但在编译过程中无法准确确定我在 C++ 中构建的 Windows SDK 版本。

从 Windows SDK 6.1 版开始,有一个 WinSDKVer.h 文件包含一些版本信息,我可以使用这些信息来确定正在使用的 SDK 版本,即使它不包含开发工具包。但是,6.0A 不包含此头文件,因此简单地插入#include 然后使用类似#ifdef 的东西是行不通的,因为环境中没有 WinSDKVer.h。

我的一位同事模糊地记得一种方法,当且仅当它存在时在 Windows 上包含一个 header ,但不记得任何细节,到目前为止我在 stackoverflow 或互联网。

如果开发者的机器上安装了 6.1 或更高版本的 SDK,我已经对我们的制作过程做了我能做的,但如果其他人遇到了这种一般问题,我也很感兴趣之前以及他们是否/如何解决它。

有什么想法吗?

最佳答案

(丑陋的)创建你自己的头文件的空版本并将它放在一个文件夹中。然后在您的包含目录中最后添加此文件夹。如果该文件存在于 SDK 中,它将被包含;否则将使用您的文件。

关于c++ - 包含 Windows 上可能存在或不存在的 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8186664/

相关文章:

c++ - |= 是什么意思

c++ - 将 STACK_OF(X509) 转换为 ASN1 流

c++ - 使用重载的加法运算符有困难

c++ - dumpbin/imports 显示的输入地址表和输入名称表是什么?

html - 每次我想使用它时都必须重写 html header 吗?

包含不同 header 时,C 实现是否可以隐式包含标准 header ?

c++ - 根据IP和掩码打印所有IP C++

windows - 谷歌云控制台 : cannot login to new WIndows VM instance

windows - Apache Httpd.conf 相对路径

php - 如何修复PHP中的“ header 已发送”错误