MFC中关闭一个Dialog程序崩溃

hdk_1992 2013-03-14 09:33:31
我在一个Dialog中,给一个编辑框加一个变量对应,然后关闭对话话框后程序就崩溃了,是什么原因呢?该怎么解决?
...全文
220 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2013-03-15
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。 判断是否越界访问,可以在数组的最后一个元素之后对应的地址处设置数据读写断点。如果该地址对应其它变量干扰判断,可将数组多声明一个元素,并设置数据读写断点在该多出元素对应的地址上。
小字 2013-03-14
  • 打赏
  • 举报
回复
你看一下打开Dialog是用的什么方式,如果是new的,那么是不是在关闭时没有delete呢?我遇到过不少次了。 我常用的打开dialog的方式: TFMain *MainForm = new TFMain(this); MainForm->ShowModal(); delete MainForm; 也可以将MainForm 声明为成员变量,在你要打开窗体的地方用前两句,在最后程序关闭时(类似析构函数)用 if ( MainForm ) { delete MainForm; }
  • 打赏
  • 举报
回复
可能是某个对象被 delete 了多次。 MFC跑飞了,一般都是某个句柄的指向是NULL
starytx 2013-03-14
  • 打赏
  • 举报
回复
根据你说的无法得出结论,F5调试跟踪一下,看看在哪块崩溃的
  • 打赏
  • 举报
回复
对话框的wm_close消息有没有写事件,断点调试下~
tonforce 2013-03-14
  • 打赏
  • 举报
回复
这个不好判断,很多原因会导致程序崩掉 跟踪下,看看在哪儿崩的?
derekrose 2013-03-14
  • 打赏
  • 举报
回复
设断点调试。
lfm13720 2013-03-14
  • 打赏
  • 举报
回复
是断言失败吧,应该很容易找到原因。

64,648

社区成员

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

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