【发布时间】:2010-06-16 13:39:11
【问题描述】:
我查看了与此类似的帖子,但链接不同,问题从未解决。我的问题是,由于某种原因,链接器期望有一个基类的定义,但基类只是一个接口。以下是全部错误
c:\users\numerical25\desktop\intro todirectx\godfiles\gxrendermanager\gxrendermanager\gxrendermanager\gxdx.h(2) : error C2504: 'GXRenderer' : base class undefined
下面是显示标题如何相互链接的代码
GXRenderManager.h
#ifndef GXRM
#define GXRM
#include <windows.h>
#include "GXRenderer.h"
#include "GXDX.h"
#include "GXGL.h"
enum GXDEVICE {
DIRECTX,
OPENGL
};
class GXRenderManager {
public:
static int Ignite(GXDEVICE);
private:
static GXRenderer *renderDevice;
};
#endif
在 GxRenderManager 的顶部,有 GXRenderer、windows、GXDX、GXGL headers。我假设将它们全部包含在本文档中。它们都相互链接,就好像它们都在同一个文档中一样。如果我错了,请纠正我,因为这就是视图标题的方式。继续……
GXRenderer.h
class GXRenderer {
public:
virtual void Render() = 0;
virtual void StartUp() = 0;
};
GXGL.h
class GXGL: public GXRenderer {
public:
void Render();
void StartUp();
};
GXDX.h
class GXDX: public GXRenderer {
public:
void Render();
void StartUp();
};
GXGL.cpp 和 GXDX.cpp 分别
#include "GXGL.h"
void GXGL::Render()
{
}
void GXGL::StartUp()
{
}
//...Next document
#include "GXDX.h"
void GXDX::Render()
{
}
void GXDX::StartUp()
{
}
不知道发生了什么。我认为这是我如何链接文档,我不确定。
【问题讨论】:
标签: c++ c visual-studio visual-studio-2008 visual-c++