2

我从 Petzold 的《Programming Windows》第 5 版一书开始学习 winapi。

创建窗口的第一个示例对我来说有点问题。书上是这么写的

#include "windows.h" (only this one)

但是当我使用 Visual Studio C++(在 Windows 7 64 位下)编译它时,它抱怨说

警告 1 警告 C4627: '#include "Windows.h"': 查找预编译头使用时跳过

错误 2 错误 C1010:查找预编译头时文件意外结束。您是否忘记在源代码中添加“#include "StdAfx.h""?

在我将其更改为 后 #include "StdAfx.h",它工作正常。

那么为什么我不能使用Windows.h,需要使用StdAfx.h??

4

2 回答 2

4

您已将项目配置为使用预编译头文件。在这种情况下,您将放入windows.h所有使用 PCH 的编译单元中,一切都很好。或者,修改 IDE 中的项目设置以不使用预编译头文件。 stdafx.hstdafx.h

为了清晰和独立于 IDE 的变幻莫测,这本书显然假设没有 PCH。如果您开发大量头文件列表,使用 PCH 可以加快构建时间,但现在不使用它可能更简单。

于 2012-04-24T16:29:41.623 回答
-2

在这种情况下,您想更改您正在使用 pch 的预编译头文件:

  1. 转到编译器右侧的解决方案。
  2. 右键点击它,
  3. 通过单击此选项,您可以选择属性。
  4. 然后选择配置属性并选择框左上角的全部。
  5. 按确定。
  6. 现在选择项目并右键单击它。
  7. 选择属性选项。
  8. 转到配置并选择 c/c++ ,单击推荐的标题,单击此选择
  9. 选择没有预编译的头文件。
  10. 按确定

现在你的问题解决了

于 2019-03-02T06:41:21.763 回答