MFC程序,程序在运行中一切良好,如果长时间不进行程序操作,程序就卡死了

写的MFC程序,程序在运行中一切良好,如果长时间不进行程序操作,程序就卡死了,最小化到托盘后,界面也显示不出来了,不知道是怎么回事?还有通过任务管理器看内存情况,内存也没有 明显的增加,也不占CPU,有谁遇到过这样的事情呢?帮帮忙了,谢谢了!

4个回答

可能存在隐藏较深的、或随机发生、或者在一定条件下发生的指针操作越界。
内存也没有 明显的增加,是不是说明内存在不操作下还是有增加,特别是 GDI 等。这样,有可能是内存泄露,主要是内核对象的,如 GDI 句柄等存在泄露。

baojiwenli2010
linz_zhou 在不操作程序情况下,内存不会增加,一直保持不变,程序卡死后界面不能够操作,但奇怪的是只有最小化按钮可以将程序隐藏到托盘中,隐藏后便恢复不出来了,程序界面将无法显示出来。程序在操作中内存会增加,不知道是不是内存泄露引起的
5 年多之前 回复

程序卡死以后,用任务管理器等生成dump文件,然后结合你程序的pdb等,用windbg来分析
查看进程当时的各个线程等信息,有可能死锁或其他

oyljerry
oyljerry 回复baojiwenli2010: 简单,先不用CButtonST呢,这样来隔离问题
5 年多之前 回复
baojiwenli2010
linz_zhou 回复oyljerry: 程序中用到了CButtonST这个类,程序死机出现状态是用到CButtonST类美化的按钮不能显示图片,接着就没办法操作了,界面就卡死了,这个类应该已经很成熟了啊
5 年多之前 回复
oyljerry
oyljerry 回复baojiwenli2010: 看上去跟UI相关的可能性更大。
5 年多之前 回复
baojiwenli2010
linz_zhou 界面卡住了,但最小化按钮还起作用,隐藏到托盘后程序界面将无法在显示了,不知道程序是真卡死了,还是假死现象,非常感谢您的回答,我不是专业的搞mfc编程的。会是什么情况引起这种情况发生呢?
5 年多之前 回复

自己顶下,没人知道吗?不知道问题出在那了,很着急

可能在程序中有死循环

baojiwenli2010
linz_zhou 程序长时间运行也没任何问题,问题在于长时间如果不进行操作放置到那会出现“死机”状态,程序不进行操作,mfc程序会干那些事呢?
5 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问