我在制作一个好的界面并使用它时遇到问题......我的设置概述:
一个“接口” GraphicsLibrary.H ...
virtual void drawPoint(const Point& p, unsigned char r, unsigned char g, unsigned char b, double pointSize);
使用“空”GraphicsLibrary.ccp!因为它是一个接口,所以“OpenGL”是一个图形库......所以我有一个OpenGL.CPP:
void GraphicsLibrary::drawPoint(const Point& p, unsigned char r, unsigned char g, unsigned char b, double pointSize)
{
//some code
}
它当然有一个“空”的OpenGL.h(因为他的头文件是GraphicsLibrary.h)
然后我有一个具有更具体功能的类,它使用 OpenGL,并使用这些基本绘图功能......(OpenGLVis_Enviroment.cpp):
OpenGL ogl;
void drawObstacleUnderConstruction(Obstacle::Type type, const vector<Point>& points)
{
for( //etcetc )
ogl.drawPoint(*it, 255, 255, 255, 3.0);
}
但我也有一个使用一些 OpenGL 功能的主...所以主也有:
OpenGL openGL;
openGL.drawText(something);
但现在我有很多这些错误(我对所有其他功能都一样):
1>OpenGLVis_Environment.obj : error LNK2019: unresolved external symbol "public: virtual void __thiscall GraphicsLibrary::drawPoint(struct Point const &,unsigned char,unsigned char,unsigned char,double)" (?drawPoint@GraphicsLibrary@@UAEXABUPoint@@EEEN@Z) referenced in function "void __cdecl DrawingFunctions::drawObstacleUnderConstruction(enum Obstacle::Type,class std::vector<struct Point,class std::allocator<struct Point> > const &)" (?drawObstacleUnderConstruction@DrawingFunctions@@YAXW4Type@Obstacle@@ABV?$vector@UPoint@@V?$allocator@UPoint@@@std@@@std@@@Z)
这是因为我使用“GraphicsLibrary::drawPoint ...”吗?我在网上搜索了很长时间,但是很难找到很多关于接口的例子......以及如何使用它们......在此先感谢大家