我使用Visual Studio 2005中,我创建一个名为“StdAfx扶养”基于MFC控制台应用程序。 在IDE中创建以下文件给我。
- RESOURCE.H
- StdAfx Dependancy.h
- stdafx.h中
- StdAfx Dependancy.cpp
- stdafx.cpp
我添加了另一个类CHelper
与Helper.h和Helper.cpp如下。
Helper.h:
#pragma once
class CHelper
{
public:
CHelper(void);
~CHelper(void);
};
Helper.cpp
#include "StdAfx.h"
#include "Helper.h"
CHelper::CHelper(void)
{
}
CHelper::~CHelper(void)
{
}
我创建一个对象CHelper
在主函数; 实现这一点,我加入StdAfx Dependancy.cpp如下的第一行Header.h文件; 而我得到了以下错误。
d:\代码\ stdafx扶养\ stdafx扶养\ stdafx dependancy.cpp(33):错误C2065:CHelper':未声明的标识符
d:\代码\ stdafx扶养\ stdafx扶养\ stdafx dependancy.cpp(33):错误C2146:语法错误:缺少 ';' 前识别符“myHelper”
d:\代码\ stdafx扶养\ stdafx扶养\ stdafx dependancy.cpp(33):错误C2065:myHelper':未声明的标识符
但是,当我把它给后stdafx.h
,错误消失。 为什么?
// Stdafx dependancy.cpp : Defines the entry point for the console application.
//
#include "Helper.h"
#include "stdafx.h"
#include "Stdafx dependancy.h"
// #include "Helper.h" --> If I include it here, there is no compilation error
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// The one and only application object
CWinApp theApp;
using namespace std;
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0;
// initialize MFC and print and error on failure
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
// TODO: change error code to suit your needs
_tprintf(_T("Fatal Error: MFC initialization failed\n"));
nRetCode = 1;
}
else
{
CHelper myHelper;
}
return nRetCode;
}