求高手赐教为何MFC在程序运行过程中关闭窗口程序就会崩溃

pilgrims_93 2013-07-12 05:22:50
我的窗口是继承于CScrollView的,程序运行过程中点框架窗口的X就会崩溃类似于指针错误的那种报错0x00000005什么的,不在析构器设置断点时debug调用堆栈看到停在这儿> mfc100ud.dll!AfxCallWndProc(CWnd * pWnd, HWND__ * hWnd, unsigned int nMsg, unsigned int wParam, long lParam) 行 248 + 0x1c 字节 C++
但如果在析构器设断点,调试时点X然后在析构器停住,然后一步一步地跟踪下去,窗口就能正常关闭,而且程序返回的是0x0。这是怎么回事!!
...全文
214 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
pilgrims_93 2013-07-19
  • 打赏
  • 举报
回复
确实是指针出了问题,谢谢大家了
xingzhou 2013-07-16
  • 打赏
  • 举报
回复
我给一个可能还原这种错误的场景:你在其他位置操作了这个ScrollView里面的变量,退出时,由于恰恰ScrollView先关闭,然后使用ScrollView的代码由于某种原因仍然被触发,导致出现内存访问冲突。但如果你在ScrollView的析构设了断点,由于调试器的原因,程序的运行顺序会有细微的差异,使得ScrollView析构后,使用ScrollView的代码不再被运行,所以能正常退出。 所以建议检查下其他用到ScrollView的代码,多做一个ScrollView是否仍有效的判断。
gcd089074149 2013-07-16
  • 打赏
  • 举报
回复
这个错误是指针指向有问题吧?查看下堆栈调用顺序,然后删除多余的代码,定位错误点
清水泠泠 2013-07-16
  • 打赏
  • 举报
回复
我之前也遇到过 析构的时候有问题 在 debug下运行时,关闭会出错,调试不出错,后来我就改成在release下调试,找到错误代码 楼主可以试试

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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