因此,我正在尝试处理各种版本的 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/