对话框的小问题。

chenzhou35 2001-09-04 05:47:29
我发现我的程序在每弹出一个对话框并关闭后,它所占用的内存并不释放,当然,第二次弹出是也不在增加。这应该不是我的程序问题,我试过建了一个空白工程,然后弹出它的About框,结果一样。问题是,我有没有什么办法可以强制令它释放这部分空间?

另外我还发现当我把应用最小化一次后,它可以释放大量的内存空间,我觉得这部分空间是不是也可以有办法回收?

谢谢
...全文
142 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenzhou35 2001-09-05
  • 打赏
  • 举报
回复
我想这个答案应该是我想知道的了。
给分了。
谢谢!
xj_h 2001-09-05
  • 打赏
  • 举报
回复
chenzhou35()你错啦
程序从他自己的堆里面分配内存,而不是从系统堆里面分配,程序运行时候就建立自己的堆,所以释放对话框这个进程占用的内存不一定变化的,到是分配内存的时候有可能堆不够用而变大。
chenzhou35 2001-09-05
  • 打赏
  • 举报
回复
不信?
你可以用任务管理器查看某个进程占用的内存量,试着打开一个对话框看看.
azuo_lee 2001-09-05
  • 打赏
  • 举报
回复
“它所占用的内存并不释放”?你是根据什么得出这个结论的?

事实上,这部分内存已经释放。你下次调用CreateWindow,说不定就是使用这块内存。你为什么说内存并不释放?
chenzhou35 2001-09-05
  • 打赏
  • 举报
回复
Up,我还没得到满意的结果,希望大家继续帮手!

我发现我的程序在每弹出一个对话框并关闭后,它所占用的内存并不释放,当然,第二次弹出是也不在增加。这应该不是我的程序问题,我试过建了一个空白工程,然后弹出它的About框,结果一样。问题是,我有没有什么办法可以强制令它释放这部分空间?

另外我还发现当我把应用最小化一次后,它可以释放大量的内存空间,我觉得这部分空间是不是也可以有办法回收?
我并没说程序有内存泄露,我只是希望它能够在运行是尽量少占用一些内存。
delete this、DestroyWindow() 我都试过,没有用。

谢谢
lyneville 2001-09-04
  • 打赏
  • 举报
回复
销畏它!
quengzi 2001-09-04
  • 打赏
  • 举报
回复
同意zhangjm(a明) 
chenzhou35 2001-09-04
  • 打赏
  • 举报
回复
我并没说程序有内存泄露,我只是希望它能够在运行是尽量少占用一些内存。
zhangjm 2001-09-04
  • 打赏
  • 举报
回复
不会吧!
如果你创建的是有模式对话框,点击OK后自动销毁,你也不能对它进行什么内存释放的操作!
如果你创建的是无模式对话框,退出后,一定要调用DestroyWindow()来释放内存!
有了这样的处理,肯定不会有内存泄漏了!
Good Luck!
chenzhou35 2001-09-04
  • 打赏
  • 举报
回复
不知道 "程序最小化其实是后台运行,这时如果程序没有任何操作的话,操作系统会将内存收回,将你的程序信息写入虚拟内存,这样可以收回大量的内存."这中说法是不是完全能解释上面提到的问题。
因为即使我再把它还原,它所占用的内存仍然低于甚至远远低于最小化之前的。
chenzhou35 2001-09-04
  • 打赏
  • 举报
回复
delete this
DestroyWindow()
我都试过,没有用。
zsb_xt 2001-09-04
  • 打赏
  • 举报
回复
如果你想在关闭对话框时释放资源,可以这样写试试看:

CDialog *dlg;
dlg = new CDialog;
*******//你要做的初始化参数或其他
delete dlg;

另外,程序最小化其实是后台运行,这时如果程序没有任何操作的话,操作系统会将内存收回,将你的程序信息写入虚拟内存,这样可以收回大量的内存.
liu_feng_fly 2001-09-04
  • 打赏
  • 举报
回复
是吗?关注一下
ybudi 2001-09-04
  • 打赏
  • 举报
回复
销毁它,又那样的函数,查查csdn

16,551

社区成员

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

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

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