我一直在想我必须在项目中的每个头文件的顶部包含#include "Stdafx.h"
行,就像在描述中所说的那样。我在wizzard的帮助下创建了简单的基于MFC对话框的应用程序,发现头文件不包含#include "Stdafx.h"
行,但是cpp包含它们。那么,当我必须在cpp中使用#include "Stdafx.h"
行时,何时在h中使用?
答案 0 :(得分:3)
简短回答:在.h
:从不;在.cpp
中,当且仅当它配置了预编译头文件时(默认情况下)。
基本原理是#include "stdafx.h"
用于包含预编译头文件(在编译stdafx.cpp
时构建)。为了使它们有效,它们必须是编译单元的第一行(不包括空格或注释)。并且第一行不能在头文件中,因为包含它的#include
首先出现!
答案 1 :(得分:0)
我建议仅在cpp文件中使用#include“stdafx.h”,因为您可能希望编译一个带有'预编译头的cpp',以及另一个没有'预编译头的cpp'。
此外,当您使用DevStudio的向导创建项目时,这些stdafx.h包含将位于cpp文件中。