C++ 无法打开源文件";stdafx.h“;

C++ 无法打开源文件";stdafx.h“;,c++,visual-c++,C++,Visual C++,我有两个包含文件头 #include "stdafx.h" #include "psapi.h" 但是,它给出了一个无法打开源代码文件“stdafx.h”的编译时错误。我正在使用Visual Studio 2010。“stdafx.h”有必要吗?我这么认为是因为如果我把它拿走,程序就无法编译。stdafx.h用于预编译头。这不是必需的,但是如果您以前从未禁用过编译器功能,那么禁用编译器功能可能会有点棘手。如果有,则必须先编译“stdafx.cpp”,然后再编译其他内容。Visual Studi

我有两个包含文件头

#include "stdafx.h"
#include "psapi.h"

但是,它给出了一个无法打开源代码文件“stdafx.h”的编译时错误。我正在使用Visual Studio 2010。“stdafx.h”有必要吗?我这么认为是因为如果我把它拿走,程序就无法编译。

stdafx.h用于预编译头。这不是必需的,但是如果您以前从未禁用过编译器功能,那么禁用编译器功能可能会有点棘手。如果有,则必须先编译“stdafx.cpp”,然后再编译其他内容。

Visual Studio将其用于“预编译头”功能。如果您对VisualStudio没有经验,我建议将stdafx.h保留在项目中


当然,如果你包含了它,你就应该拥有它。

如果你包含了它,那么你就必须首先在每个编译单元中包含它。在遇到
#include“stdafx.h”
之前,预处理器将忽略每个前导行。您可以将任何内容放在前面,没有语法错误。@Benoit:My Visual Studio(2010)在stdafx.h不是第一个包含时报告了一些内容(至少是一个警告)。注意:如果任何一个文件包含
stdafx.h
,那么它们都应该包含。我有问题,只有一个文件(来自第三方)使用它,所以我必须包括在我所有的头文件。我宁愿不使用它。我的项目不够大,无法注意到预编译节省的时间;用视觉学习,麻烦不值得节省。@Benoit:你的评论应该是答案!我困惑了很长一段时间,当我遇到这个错误时,我没有找到合理的解释!谢谢