XiaoHui.net 笑汇程序员论坛首页
工作并快乐着,职业并休闲着
寻梦的岁月从不言辛苦几许,
不问收获几多……
» 游客:  申请新用户 | 登录 | 会员 | 统计 | 帮助 » XiaoHui.Net 笑汇程序员论坛 | 纯文字版 | 全站索引 | XiaoHui.com


[MFC Class] 怎么消除未处理的异常

RSS 订阅当前论坛  

上一主题 下一主题
     

标题: [MFC Class] 怎么消除未处理的异常  
 
zonla
小水手
Rank: 1



UID 21600
精华 0
积分 10
帖子 10
阅读权限 10
注册 2006-5-12
状态 离线
怎么消除未处理的异常

我的程序里定义了一个Bullet类和Robot类,和一个类似CPoint的类Position.
Robot类中包含成员std::vector<Bullet>m_TBulletVector;
Robot和Bullet里都定义了一个CRect Bullet::getRect()成员函数,
CRect Bullet::getRect(void)const
{
        CRect rect;
        rect.left = (long)(m_BPosition.x) - BULLET_WIDTH/2;
        rect.top = (long)(m_BPosition.y) - BULLET_HEIGHT/2;
        rect.right = rect.left + BULLET_WIDTH;
        rect.bottom = rect.top + BULLET_HEIGHT;
        return rect;
}
Position m_BPosition是Bullet类的一个成员变量;
CRect Robot::getRect()const的定义与CRect Bullet::getRect()类似;
在程序里我定义了一个全局的std::vector<Robot> RobotVector;
程序运行过程中接受LButtonUp消息,
void CTANKView::OnLButtonUp(UINT nFlags, CPoint point)
{
        // TODO: 在此添加消息处理程序代码和/或调用默认值
        Robot temp = CreateRobot(point);
        RobotVector.push_back(temp);
        //RobotNumber++;
        CView::OnLButtonUp(nFlags, point);
}
该程序在Debug生成后的运行过程中出现如下错误;错误出现点在我调用
CRect Robot::getRect()const的时候,
CRect Robot::getRect()const的时候出错,弹出框中信息如下:

TANK.exe 中的 0x77f767cd 处未处理的异常: 用户断点 。

但是如果我用Release生成的话,
如果void CTANKView::OnLButtonUp(UINT nFlags, CPoint point)
只调用一次,程序能够很好的执行;
若调用第二次;
错误将在运行到调用CRect Bullet::getRect(void)const时出错,
弹出框中信息如下:

TANK.exe 中的 0x00401205 处未处理的异常: 0xC0000005: 读取位置 0x00000020 时发生访问冲突 。

请教各位高手如何解决这个Bug,先谢过!
2006-5-12 21:35#1
查看资料  Blog  发短消息  QQ  ICQ 状态  Yahoo!  顶部
 
lk1225
该用户已被删除









*** 作者被禁止或删除 内容自动屏蔽 ***
2006-9-26 19:22#2
顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题  


 


所有时间为 GMT+8, 现在时间是 2008-12-2 09:55 Powered by Discuz! 4.1.0 清除 Cookies - XiaoHui.Net 笑汇程序员论坛 - Archiver