两个类,classA,classParent.
定义classA的classA.h文件:
class classA : public classParent
{...};但是我的classA.h并没有包含classParent.h啊。
怎么编译好好的,没有
error C2504: 'classParent' : base class undefined
的错误呢?我所看到的是在classA.cpp有#include "stdAfx.h"
stdAfx.h中有#include "classParent.h"
但是classA.h文件不能找到classParent.h啊。只是它的实现文件cpp文件能找到
classParent.h罢了。是因为有其它的原因吗?
定义classA的classA.h文件:
class classA : public classParent
{...};但是我的classA.h并没有包含classParent.h啊。
怎么编译好好的,没有
error C2504: 'classParent' : base class undefined
的错误呢?我所看到的是在classA.cpp有#include "stdAfx.h"
stdAfx.h中有#include "classParent.h"
但是classA.h文件不能找到classParent.h啊。只是它的实现文件cpp文件能找到
classParent.h罢了。是因为有其它的原因吗?
解决方案 »
- 申明变量,调用,但是还是报错!
- CListCtrl做出漂亮的界面CHeaderCtrlCl头文件
- Visual C++ 2008关于使用ActivcX空间问题
- 如何把结构中的变量名作为参数传递,函数的参数问题
- 在存取 ccc.exe 时发生共享违例 问题
- 装VC遇到问题
- CFileDialog使用时文件对话框打不开,谢谢
- 请问我为什么装Driver Studio 里的SoftICE总是从起后蓝屏呀.
- ??????????????????????????????????请教:
- 一个关于EditBox的问题
- 有人用过ActiveSkin吗?为什么在VC++中用ACTIVESKIN这个东东会有错误,我直接按他的范例写的啊
- 有关变量的生存期,
class classA : public classParent
{...};
是不可能是无效代码的!
#if !defined(AFX_classA_H__F1547346_B3E7_4A67_82CC_26CEE849AD44__INCLUDED_)
#define AFX_classA_H__F1547346_B3E7_4A67_82CC_26CEE849AD44__INCLUDED_#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// classA.h : header file
//
#include "Resource.h"
#include <afxtempl.h> //for CList/////////////////////////////////////////////////////////////////////////////#ifndef __AFXEXT_H__
#include <afxext.h>
#endifclass classA : public classParent
{...};--------------------------------------
要用到classParent是不是必须在这个文件中加#include "classParent.h"?
这里显然没有加。
除非你 Resource.h里面引用了classparent.h
可以有以下两个理由:
1。没有这个classA.h简直不可思议,程序怎么会按照我的思路来运行
2。在这个文件中稍微故意写出一个错误的语法,都会编译报错!
到底是什么地方的设置导致这样,我以前一直没有意识到这个问题,现在要把
classA ,classParent两个类移到别的工程(这两个类很重要,我封装的很好,想拿到别的工程中用)然后就报错,说error C2504: 'classParent' : base class undefined
这个时候我才发现我原来的工程里面同样这样写竟然一直好好的。
afxtempl.h,afxext.h显然都是系统的。
我真是糊涂了。
#include <afxtempl.h> //for CList/////////////////////////////////////////////////////////////////////////////#ifndef __AFXEXT_H__
#include <afxext.h>
这几个头文件里面没引用 classparent.h?
就是今天加到另外一个新的工程中就不行了,我看看才发现这个问题。是不是这个必须要加include "classParent.h",有没有可能是别的地方的设置问题 。
我搜索了原来的不报错的工程中的所有文件
只有两个地方用到了include "classParent.h"
一个是classParent.cpp.一个是stdAfx.h但是classA.h没有include stdAfx.h,只是classA.cpp才有stdAfx.h
也许这种写法就可以让classA.h不用#include "ClassParent.h"不过我不断的开新工程测试,好像现在编译又没有问题了,(我现在都不知道为什么刚才会有问题。)但是现在又报这个link错误。这是新的问题呢,还是老的问题。
strmbasd.lib(dllentry.obj) : error LNK2001: unresolved external symbol "class CFactoryTemplate * g_Templates" (?g_Templates@@3PAVCFactoryTemplate@@A)
strmbasd.lib(dllentry.obj) : error LNK2001: unresolved external symbol "int g_cTemplates" (?g_cTemplates@@3HA)strmbasd.lib是我的classA要用的。