使用头文件和 StdAfx.h
using header files and StdAfx.h
>我有一个简单的测试控制台应用程序。我正在尝试使用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 标头的文件选择"不使用预编译标头"。
相关文章:
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 文本文件中的单词链表
- CMake-按正确顺序将项目与C运行时对象文件链接
- 使用新行和不使用新行读取文件
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 挂起和取消挂起一个文件DLL
- 如何确定我已使用非编码文件到达 EOF?
- 在编辑头文件时,VS Intellisense如何从stdafx.h中查找定义
- 如何避免使用STDAFX和其他标头文件
- 错误 C1083:无法打开源文件:"stdafx.cpp":没有此类文件或目录
- 使用头文件和 StdAfx.h
- Stdafx.h到头文件
- 找不到stdafx.h中包含的头文件
- 错误 C1083:无法打开包含文件:"stdafx.h",但它应该打开?
- 在 cpp 文件中使用 #include "Stdafx.h"
- Matlab 符合文件错误C++:致命错误 C1083:无法打开包含文件:"stdafx.h"
- VS2012预编译头:我的.h文件如何知道包含在stdafx.h
- 致命错误:找不到'stdafx.h'文件
- 错误 C1083:无法打开包含文件:"stdafx.h":VS 2005 中没有此类文件或目录