使用头文件和 StdAfx.h

using header files and StdAfx.h

本文关键字:StdAfx 文件      更新时间:2023-10-16

>我有一个简单的测试控制台应用程序。我正在尝试使用simple.h文件中定义的函数nike2,并且实现在简单.cpp。simple.h 和 simple.cpp 文件都与主项目位于不同的目录中。

我已经将simple.h添加到"头文件"中,并在项目资源管理器中将simple.cpp添加到"源文件"(我不确定是否需要)

控制台应用:

#include "stdafx.h"
#include "....simple.h"
int _tmain(int argc, _TCHAR* argv[])
{
nike2(5);
return 0;
}

简单.h

#include <cstdlib>
#include <iostream>
#ifndef MEMORY
#define MEMORY
int var;
int  nike2(int f);
#endif /*MEMORY*/

简单.cpp

#include <cstdlib>
#include <iostream>
#include "simple.h"

int  nike2(int f)
{
 return 0;
}

编译时出现错误:

Error   4   error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "StdAfx.h"' to your source?   c:csimple.cpp 11  1   usingHeader

为什么?魔法"StdAfx.h"有什么用?

UPD

简单.cpp现在看起来是这样,但仍然有相同的错误

#include "C:cusingHeaderusingHeaderstdafx.h"
#include <cstdlib>
#include <iostream>
#include "simple.h"

int  nike2(int f)
{
return 0;
}
Stdafx.h用于

制作预编译的标头。它包含一些最标准和最常用的include

这样做主要是为了加快编译过程,因为WinAPI是一个非常繁重的事情。

你也可以检查这个问题,它有一个更详细的答案。

stdafx.h 包含您不希望更改的内容的标头包含。标准库之类的东西包含在 stdafx.h 中,因此它们只需要编译一次。你应该在你需要它的地方包含stdafx.h。如果您不想使用它,可以在项目首选项中将其关闭。

魔法"StdAfx.h"有什么用?

它用于Visual Studio中的预编译标头。

您可以将其包含在.cpp文件中,也可以为不需要包含所有 Windows 标头的文件选择"不使用预编译标头"。