遇到一个诡异的问题,主窗口绑定两个信号,信号触发主窗口两个槽函数,槽函数中都有创建局部dialog,因此实验的时候工程弹出两个框,两个框都是dialog,点击ok之后都会杀死主窗口进程
但是点击框1,主窗口被杀死,但是框2还在,框1跟框2的父类都是主窗口 ,这个时候就麻烦了,父亲已经死了,儿子的窗口居然还活着,点击框2,程序崩溃
排查代码发现,点击窗口1的时候,是从另一个进程,将自己的父亲杀死了(这个坑爹货)。儿子1死了,父亲也死了,儿子2还活着,儿子2想再坑一次爹的时候,找不到了,崩溃。
最后只能添加限制,只能一个儿子坑爹,爹只有一个,先到先得。
探讨了在主窗口绑定信号触发槽函数创建局部对话框时遇到的父子窗口进程管理问题,当父窗口被意外杀死后,子窗口依然存活导致的程序崩溃现象。
1万+

被折叠的 条评论
为什么被折叠?



