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