【问题标题】:Cannot open include file: 'VersionHelpers.h': No such file or directory无法打开包含文件:'VersionHelpers.h':没有这样的文件或目录
【发布时间】:2013-11-01 13:31:00
【问题描述】:

我正在尝试使用在 VersionHelpers.h 标头中声明的 IsWindows7SP1OrGreater 函数。我得到:

'VersionHelpers.h': 没有这样的文件或目录

虽然我可以从 Visual Studio 打开此标头,但语法检查器可以正确找到它。有什么问题?

【问题讨论】:

  • 您是否使用include "VersionHelpers.h" 而不是include <VersionHelpers.h>
  • @benjymous:不,我使用的是应该的尖括号。
  • 什么版本的VS,你的目标是哪个工具集?
  • 这是唯一打不开的头文件吗?您从源中成功#include 的其他头文件是否位于同一目录中?您可以尝试全新编写包含行,它可能是名称中的无效(非 ANSI)字符。
  • @DavidHeffernan:VS 2103、2013 工具集。

标签: c++ windows visual-studio winapi


【解决方案1】:

为了使用版本帮助宏,您需要针对 VS 2013 附带的 v120 平台工具集。如果您在 VS 2013 中创建一个空项目,那么您会发现包含 VersionHelpers.h 可以正常工作.

如果您的目标是 v120,那么我猜您的项目中还有其他配置错误。从一个全新的项目开始,让自己相信#include <VersionHelpers.h> 可以按预期工作。然后尝试找出你的麻烦项目和正常工作的普通项目之间的不同之处。

【讨论】:

  • 是的,你是对的。我的包含VersionHelpers 的标题又包含在另一个使用v100 工具集的项目中。但是,为什么 MSDN 没有提到这个问题呢?它甚至说从 Windows 2000 开始可以使用 VersionHelpers 的功能。
  • 据我了解,这些宏位于 Win2k 支持的 VerifyVersionInfo 之上。所以宏继承了它。宏非常简单。对于您的 v100 工具,如果您需要继续使用它,您只需将包含文件添加到该项目中即可。
【解决方案2】:

我自己也遇到过这个问题,我在磁盘上的任何地方都找不到该文件。

然后我才意识到该文件似乎只包含在 Windows 8.1 SDK(以及我想未来的 SDK)中,位于 C:\Program Files (x86)\Windows Kits\8.1\Include\um 路径中。文档没有提到这一点(所以你不需要 Visual Studio 2013 就可以使用它)

【讨论】:

    【解决方案3】:

    是的...... VersionHelpers.h 包含在 VS2013 Windows 8.1 SDK 中是对的。

    对于使用 VS2012 的用户,您必须重新下载 Win 8.1 SDK 并安装它。导航到 Program Files(x86)\Windows Kits\8.1\Include\um。复制所有文件并粘贴到 8.0\Include\um 中。最好跳过所有现有文件。重新加载VS

    【讨论】:

      猜你喜欢
      • 2017-07-04
      • 2013-11-05
      • 2014-05-07
      • 2017-02-22
      • 2017-03-31
      • 2015-11-11
      • 1970-01-01
      相关资源
      最近更新 更多