我是从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/