找不到C++ #include <atlbase.h>

Ram*_*lol 30 c++ winapi visual-c++

当我编译我的程序时,它说它无法找到atlbase.h.我错过了一些SDK还是什么?

小智 35

它包含在Windows驱动程序工具包版本7.1.0中.

  • 我刚刚用过这个解决方案.到目前为止最好的答案.出于某种原因,我不得不下载ISO,但是使用Daemon Tools托管它并且没有安装它的问题.它不仅为您提供了标题(`atlbase.h`)和libs(例如`atls.lib`),我需要的下一个缺少的文件库是`ws2_32.lib`,它还包含在其他许多文件中.不要打扰旧的SDK,你当然不需要升级你的Express Visual Studio版本,因为很多人一开始就建议. (2认同)

Kym*_*oco 29

Visual Studio 2017

运行Visual Studio安装程序时,选择" 单个组件"选项卡,在" SDK","库"和"框架",确保选中" Visual C++ ATL支持". 已选择VS安装程序Visual C++ ATL支持

  • 同样的情况也适用于 VS 19,无论是 v141 (VS 17) 还是 v142 (VS 19) 工具链。 (2认同)

wkl*_*wkl 13

包含标头的Microsoft ATL(活动模板库)atlbase.h包含在Windows 2003 SDK中,但它不包含在任何较新的Windows SDK版本中.它也包含在Visual Studio的专业版中.

  • 如果您在x86-64 CPU上运行64位Windows,请输入"PSDK-amd64.exe".如果您在Itanium上运行Windows,请输入"PSDK-ia64.exe".如果您运行的是32位Windows,请输入"PSDK-x86.exe". (2认同)
  • 好吧,链接不再存在。[this](http://stackoverflow.com/a/8990680/353410)似乎有效 (2认同)

use*_*400 5

对于 Visual Studio 2015 用户,请确保安装了 Common Tools for C++(VS 安装程序的一部分)。


pog*_*ama 5

Visual Studio 2017 Express 版解决方案

在 Visual Studio 2017 Express 版本中构建 COM C++ 项目时,我遇到了同样的错误。正如这里的几个用户所提到的,ATL 支持不包含在 Visual Studio 的 Express 版本中。因此,要构建 C++ COM/ATL 项目,您至少需要社区版.

如果确实需要使用 Express 版,可以下载并安装Build Tools for Visual Studio 2017。确保在安装过程中启用“ Visual C++ ATL for x86 and x64 ”组件。

之后在项目属性中添加额外的 VC++ 目录:

  • 包括目录: C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.14.26428\atlmfc\include
  • 库目录: C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.14.26428\atlmfc\lib\x86

VC++ 编译器现在应该能够找到 ATL 源文件和库文件。