求救!无法解析的外部符号

积分陷阱 2011-11-22 09:58:41
自己写了个贪食蛇程序,在编译时报错:

error LNK2019: 无法解析的外部符号 "public: __thiscall Snake::Snake(void)" (??0Snake@@QAE@XZ),该符号在函数 "protected: __thiscall CSnakeView::CSnakeView(void)" (??0CSnakeView@@IAE@XZ) 中被引用

error LNK2019: 无法解析的外部符号 "public: __thiscall Snake::~Snake(void)" (??1Snake@@QAE@XZ),该符号在函数 "public: virtual __thiscall CSnakeView::~CSnakeView(void)" (??1CSnakeView@@UAE@XZ) 中被引用

Snake是我自己建的贪食蛇类,Snake(void)和~snake(void)是构造和析构函数,我在CSnakeView里对它进行了实例化,之后就抱错了,不知道错在哪里,求教!!!!
...全文
103 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
积分陷阱 2011-11-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 pathuang68 的回复:]
构造和析构函数从代码上是声明了,但是不知道楼主在CPP文件中定义了没有?
[/Quote]

原来如此,多谢了
对象 2011-11-22
  • 打赏
  • 举报
回复
肯定是无实现,即使有,程序也没检测到。

原因是多种多样的,有可能是少了lib和dll,有可能是被预编译忽略了,还有可能根本就无实现。
pathuang68 2011-11-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zhao_zi_xu 的回复:]

有人知道么,教教我啊,多谢了
[/Quote]

构造和析构函数从代码上是声明了,但是不知道楼主在CPP文件中定义了没有?
积分陷阱 2011-11-22
  • 打赏
  • 举报
回复
有人知道么,教教我啊,多谢了
积分陷阱 2011-11-22
  • 打赏
  • 举报
回复
如何察看那个link,求教,搜不到啊
积分陷阱 2011-11-22
  • 打赏
  • 举报
回复
class Snake
{
struct _SnakePos{
int x,y;
};
_SnakePos *body;
int header;
int length;
int direct;
int xMax;
int yMax;
int nMax;
bool generator;
int randomX,randomY;
COLORREF seedRGB;
bool bDone;
int score;
int speed;
private:
bool moveLeft(void);
bool moveRight(void);
bool moveUp(void);
bool moveDown(void);
bool check(void);
//void increase(void);
public:
Snake();
~Snake();
Snake(int xMax,int yMax);
void init(int xMax,int yMax);
bool move(void);
void DrawSnake(CDC* pDC,int left,int top,int size);
void updateMove(CDC* pDC,int left,int top,int size);
void turnLeft(void);
void turnRight(void);
void turnUp(void);
void turnDown(void);
void setSpeed(int speed);
void getScore(void);
};
这是我定义的类;

在SnakeView.h中声明:
{

...

// 生成的消息映射函数
protected:
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg void OnTimer(UINT_PTR nIDEvent);
Snake snake;
};
yuxi584350 2011-11-22
  • 打赏
  • 举报
回复
要不定义一下DEF文件,强制文件名,或都用dumpbin看一下导出的函数名,别处看看link里设置了没有
turing-complete 2011-11-22
  • 打赏
  • 举报
回复
你的析构函数只声明了,在类外没有实现。
relaxisland 2011-11-22
  • 打赏
  • 举报
回复
需要的函数没有找到目标文件,
估计是函数名大小写错误之类的吧
仔细查查看,或者把类定义 和使用地方贴出来。
yuxi584350 2011-11-22
  • 打赏
  • 举报
回复
关于DLL类,在没有看到相关代码行,表示无能为力

64,662

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧