在 cpp 文件中使用 #include "Stdafx.h"
Using #include "Stdafx.h" in cpp files
我一直认为我必须在项目的每个头文件的顶部包括#include "Stdafx.h"
行,就像在描述中所说的那样。我在向导的帮助下创建了一个简单的基于MFC对话框的应用程序,发现头文件不包含#include "Stdafx.h"
行,但cpp有。那么,什么时候我必须在cpp中使用#include "Stdafx.h"
,什么时候在h中使用呢?
简短的回答:在一个.h
: never;在.cpp
中,当且仅当它配置了预编译的头文件(它们是默认的)。
基本原理是#include "stdafx.h"
用于包含预编译的头文件(在编译stdafx.cpp
时构建)。为了使它们有效,它们必须位于编译单元的第一行(不包括空白或注释)。而且第一行不能在头文件中,因为包含它的#include
首先出现!
我建议只在cpp文件中使用#include "stdafx.h",因为您可能想要编译一个带有'预编译头文件的cpp ',而另一个不带有'预编译头文件的cpp '。
同样,当你使用DevStudio的向导创建项目时,这些stdafx.h包含将位于cpp文件中。
相关文章:
- 既然存在危险,为什么项目要使用-I include开关
- 有充分的理由在h文件中使用include保护而不是cpp文件吗
- 如何将更多文件夹添加到c++include路径
- 什么是"#include <boost/functional/hash.hpp> "?
- 对于MacOS上的G++,如何添加默认的include目录/usr/local/include和默认的库搜索路径/usr
- C++包含来自 #include "DevEngine/Core.h" 的错误
- <filesystem> 在 clang 6 和 10 上 #include 错误
- 在 void 函数中使用 #include 变量C++
- N-API include an .so or dll
- 允许哪些令牌作为 #include 的参数?
- VS2015/VC++ 在新类模板中禁用默认 #include "stdafx.h"
- 我可以在Visual Studio C++中使用 #include "pch.h" 而不是 #include "stdafx.h" 作为我的预编译头吗?
- 在 C++ 中,在 stdafx.h 之前 #include iostream
- 为什么我们使用"#include "stdafx.h""而不是"#include < stdafx.h>"?
- 为什么我必须在Microsoft Visual Studio C++应用程序中 #include "stdafx.h"?
- 在向孩子教授C++时使用"include stdafx.h"?
- 在 cpp 文件中使用 #include "Stdafx.h"
- 为什么我不能运行这个为什么这个c ++代码在Visual Studio中给出错误,尽管它在删除后在代码块中运行良好 #include "stdafx.h"
- 尝试构建现有项目,很多"Cannot open include file: 'StdAfx.h': No such file or directory"
- 编译需要 #include "stdafx.h"