100分求助!关于内存增长速度快的问题

tonyeah 2006-02-10 04:45:30
在程序中使用模态对话框,发现每调用一次模态对话框内存就会长,关闭该对话框后内存又不能下降,下次再调用,内存又继续长.而且还长得非常快,每调用一次要长1M多(对话框中有图片),又降不下来,很是郁闷!
想问问怎样在关闭模态对话框后,让内存能够降下来
多谢,多谢
...全文
223 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
panda_w 2006-02-13
  • 打赏
  • 举报
回复
1.你的模态对话框使用 new 分配内存,在关闭时没有delete
可以在OnDestroy函数中delete
2.频繁的new /delete 会产生内存碎片,也会造成内存使用增长
tonyeah 2006-02-13
  • 打赏
  • 举报
回复
是动态加载图片的,请问要怎样释放内存啊
ncucf 2006-02-13
  • 打赏
  • 举报
回复
应该不是对话框本身的问题,你看哪里申请了内存,而忘记释放了,加载图片很多时候都需要开辟一个很大的内存区的,你应该是动态加载图片吧,不是作为资源的形式吧!
贴出你加载图片的代码来就可以看出来了!自己再自习瞧瞧!
ghyd 2006-02-11
  • 打赏
  • 举报
回复
补充一下:注意你的图片资源.不知道你是以什么方式来使用的,我建议你使用现有的图片,然后在程序启动时把该资源加载(注意只能加载一次).
ghyd 2006-02-11
  • 打赏
  • 举报
回复
兄弟,我也遇到这样的情况.不过,我的解决方法是使用摸态对话筐时,使用new 和delete
cmydialg* pMydlg=new cmydialg(this);
pmydlg->domodel();
delete pmydlg;
AAAAAANWJ 2006-02-11
  • 打赏
  • 举报
回复
最小化后再恢复,内存果然变小了!
怎么解决???

遇到过这样的问题,最小化后,物理内存小了,看看这进程的虚拟内存,我记得虚拟内存会涨.
tonyeah 2006-02-11
  • 打赏
  • 举报
回复
没有发现内存泄露啊~~~
问一下 DentistryDoctor(MVP-My heart will fly,in the sky.),图片加载了怎么释放??
greenery 2006-02-11
  • 打赏
  • 举报
回复
你调试的时候确保没有内存泄露吗?
DentistryDoctor 2006-02-10
  • 打赏
  • 举报
回复
是不是图片加载了没有释放?
kugou123 2006-02-10
  • 打赏
  • 举报
回复
有些是静态数据,windows会自动管理内存的。只要确保你的程序没有内存泄漏就是了。
tonyeah 2006-02-10
  • 打赏
  • 举报
回复
最小化后再恢复,内存果然变小了!
怎么解决???
tonyeah 2006-02-10
  • 打赏
  • 举报
回复
去掉图片,长得就没这么大,因为我的这个对话框中必须要有图片,所以我关键是要知道当我关闭该对话框后怎样回收资源,把内存降下来
tonyeah 2006-02-10
  • 打赏
  • 举报
回复
用this->DestroyWindow()也要报错
kugou123 2006-02-10
  • 打赏
  • 举报
回复
你把窗口最小化,再恢复,看内存减少没有?
nodefault 2006-02-10
  • 打赏
  • 举报
回复
this->DestroyWindow();
tonyeah 2006-02-10
  • 打赏
  • 举报
回复
我发现destroywindow()没有执行成功啊~?返回值为0,继续求解
tonyeah 2006-02-10
  • 打赏
  • 举报
回复
是不是调用DestroyWindow()
我的代码如下:
void CKDLtyxszb::OnClose()
{
// TODO: Add your message handler code here and/or call default
CKDLtyxszb tyxszb;
tyxszb.DestroyWindow();
CDialog::OnClose();
}//////这样做没有效果啊,和原来一样

如改为这样
void CKDLtyxszb::OnClose()
{
// TODO: Add your message handler code here and/or call default

CKDLtyxszb::DestroyWindow();
CDialog::OnClose();
}//////这样就会报错!

该怎么写啊~~??
he_sl 2006-02-10
  • 打赏
  • 举报
回复
应该是资源没有释放。只是需要看看是什么资源
he_sl 2006-02-10
  • 打赏
  • 举报
回复
去掉对话框的图片看看内存是否还增长那么大。若不是,应该是图片资源没有释放
striking 2006-02-10
  • 打赏
  • 举报
回复
看看哪里 new 了内存。。 然后delete 记住 指针数组 加【】
加载更多回复(6)

16,551

社区成员

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

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

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