关于MFC程序关闭的问题

franksunny 2006-05-15 12:53:03
我现在用MFC编程中遇到两个问题,第一个是当我关闭程序的时候,窗体已经关掉了,但是程序并没有完全关掉,我不知道大家有没有遇到过这种情况,产生这种问题的原因是什么,一般采用什么方法来避免.
第二个问题是,我在进行OpenGL编程时,程序执行后,有时会无故退出,经我调试,可能是内存问题,但是具体是否内存问题我也还没具体调试通,因为这种随机的退出并不是很频繁,一般我调试过程中很少发生,所以我想问一下,一般一个程序运行时突然退出不提示任何错误,那么这种问题一般怎么解决,有没有总结过这些东西啊?
先感谢看完这个贴的同行
期待您们给我较详细的解答,谢谢!
...全文
421 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
World7th 2007-02-07
  • 打赏
  • 举报
回复
第一个问题可能你在处理窗体的WM_DESTROY时,没有调用PostQuitMessage(0),PostQuitMessage用来发送WM_QUIT消息到消息队列,使程序退出.
第二个问题可能程序中有函数无限递归调用,会出现这种情况

cutftp 2007-02-07
  • 打赏
  • 举报
回复
第一个问题我遇到过,关闭了,进程还在
high2003376320 2007-02-06
  • 打赏
  • 举报
回复
学习
DarknessTM 2006-05-16
  • 打赏
  • 举报
回复
第一个问题关键在于你是怎么关闭窗口的,消息循环是一定要等到WM_QUIT才会退出的,可能由于某种原因,关闭的时候没有引发WM_QUIT
sunmz_wjxy 2006-05-15
  • 打赏
  • 举报
回复
你的第一个问题我没有遇到过.

第二个问题最常见的原因是buffer的长度不够长.
希望对你有所帮助
franksunny 2006-05-15
  • 打赏
  • 举报
回复
非常感谢大家的帮助,看来大家对第二个问题的意见都比较集中,在不涉及OpenGL时基本为内存分配问题,同时非常感谢soaroc,我刚从网上下了Nehe教程的源代码在看
至于第一个问题,我先接受进程死锁的问题,因为程序中,我没有对soarroc提到的消息进行处理过,至少可以排除这个问题。
搞懂后我来结帖,希望热心的各位大大谅解。
soaroc 2006-05-15
  • 打赏
  • 举报
回复
对于第一个问题,除了上面的介绍外,还有可能是在使用WM_DESTROY和WM_QUIT时引发的错误,比如说在响应WM_QUIT中关闭了窗口,同时覆盖的缺省的处理。
对于第二个问题,我以前也经常遇到,后来看了NeHe的教程,里面在每处可能出现问题的地方都作了对话框提示,并作相应的处理后,风格比较好,先在也使用这种风格,出现了情况就很好查找了。其实不止是buffer不够的问题,还有许多种可能,比如说是在获取相应的纹理资源,查询对应的模式等都回出现,最好在这些地方标记以下。
芮言 2006-05-15
  • 打赏
  • 举报
回复
第一个问题没有遇到过,不过第二个经常遇到。一般与内存分配有关。
kulv0405 2006-05-15
  • 打赏
  • 举报
回复
LZ的第二个问题 我也遇到过,当时是自己分配的buffer不够用

关于第一个问题,如果你用到了线程,应该是有线程没有完全终止
thisisll 2006-05-15
  • 打赏
  • 举报
回复
第二个问题
你可以装个boundschecker可以查出来的
aa3000 2006-05-15
  • 打赏
  • 举报
回复
第一个问题通常是进程死锁导致的

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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