我有简单的测试控制台应用程序。我试图使用simple.h文件中定义的函数nike2,并且在simple.cpp中实现。 simple.h和simple.cpp文件都位于与主项目不同的目录中。使用头文件和StdAfx.h
我在项目资源管理器中添加simple.h到“头文件”和simple.cpp到“源文件”(我不知道它是需要)
控制台应用程序:
#include "stdafx.h"
#include "..\..\simple.h"
int _tmain(int argc, _TCHAR* argv[])
{
nike2(5);
return 0;
}
Simple.h
#include <cstdlib>
#include <iostream>
#ifndef MEMORY
#define MEMORY
int var;
int nike2(int f);
#endif /*MEMORY*/
Simple.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:\c\simple.cpp 11 1 usingHeader
为什么?什么是魔术“StdAfx.h”用于?
UPD
simple.cpp现在看起来这种方式,但仍然有同样的错误
#include "C:\c\usingHeader\usingHeader\stdafx.h"
#include <cstdlib>
#include <iostream>
#include "simple.h"
int nike2(int f)
{
return 0;
}
'我在项目资源管理器中添加了simple.h头文件和simple.cpp源文件(我不确定是否需要)'不,不需要,Header和Source过滤器只是可视化的过滤器并不匹配任何实际目录模式的功能模式,它只是可视化和分类到Visual Studio IDE中。顺便说一句:我认为你不需要“StdAfx”。 – 2012-08-07 14:09:33
如果我需要StdAfx,我需要添加它将其包含到simple.cpp中?为了让comiler开心,我必须写一些类似'#include“的C:\ c \ usingHeader \ usingHeader \ stdafx.h”'? – vico 2012-08-07 14:28:45
@user不,只需添加'#include“stdafx.h”'就像消息所示。该文件将在您的项目目录中,并且不需要完整的路径。 – 2012-08-07 15:36:44