使用#include" Stdafx.h"在cpp文件中

时间:2014-06-19 12:43:49

标签: c++ visual-c++

我一直在想我必须在项目中的每个头文件的顶部包含#include "Stdafx.h"行,就像在描述中所说的那样。我在wizzard的帮助下创建了简单的基于MFC对话框的应用程序,发现头文件不包含#include "Stdafx.h"行,但是cpp包含它们。那么,当我必须在cpp中使用#include "Stdafx.h"行时,何时在h中使用?

2 个答案:

答案 0 :(得分:3)

简短回答:在.h:从不;在.cpp中,当且仅当它配置了预编译头文件时(默认情况下)。

基本原理是#include "stdafx.h"用于包含预编译头文件(在编译stdafx.cpp时构建)。为了使它们有效,它们必须是编译单元的第一行(不包括空格或注释)。并且第一行不能在头文件中,因为包含它的#include首先出现!

答案 1 :(得分:0)

我建议仅在cpp文件中使用#include“stdafx.h”,因为您可能希望编译一个带有'预编译头的cpp',以及另一个没有'预编译头的cpp'。

此外,当您使用DevStudio的向导创建项目时,这些stdafx.h包含将位于cpp文件中。