c++ - Windows.h 或 StdAfx.h,Petzold 书中的第一个窗口示例 "Programming Windows"

标签 c++ winapi

我是从Petzold的书《Windows编程》第五版开始学习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??

最佳答案

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

为了清晰起见,这本书显然没有假设 PCH,并且不受 IDE 变幻莫测的影响。如果您开发大量头文件,使用 PCH 可以加快构建时间,但目前不使用它可能更简单。

关于c++ - Windows.h 或 StdAfx.h,Petzold 书中的第一个窗口示例 "Programming Windows",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10302004/

相关文章:

c++ - UML 图中的运算符重载

c++ - 友元函数单独声明

创建数组时 C++ 内存泄漏

c# - 遗留 16 位应用程序的 Kiosk 模式

c++ - S.O.L.I.D 的 S 可以扩展到代码的每个元素吗?

c++ - Boost.Iostreams 与 iostream/streambuf 重载比特流 I/O

c++ - 我可以在不引发 C++ 异常的情况下检查内存块是否可读吗?

c++ - BuildCommDCB 实际上做了什么?

c++ - 如何使用我自己的坐标而不是 wParam? (使用winapi)

c++ - Win32 - 从 C/C++ 中选择目录对话框