Windows.h或StdAfx.h,Petzold的书“Programming Windows”中的第一个窗口示例

时间:2012-04-24 16:26:03

标签: c++ winapi

我从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 ??

2 个答案:

答案 0 :(得分:4)

您已将项目配置为使用precompiled headers。在这种情况下,您将windows.h放入stdafx.h,在所有使用PCH的编译单元中包含stdafx.h,一切都很顺利。或者,在IDE中修改项目设置以不使用预编译标题。

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

答案 1 :(得分:-2)

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

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

现在您的问题已解决