在程序中使用模态对话框,发现每调用一次模态对话框内存就会长,关闭该对话框后内存又不能下降,下次再调用,内存又继续长.而且还长得非常快,每调用一次要长1M多(对话框中有图片),又降不下来,很是郁闷!
想问问怎样在关闭模态对话框后,让内存能够降下来
多谢,多谢

解决方案 »

  1.   

    关闭模态对话框的时候要destroy
      

  2.   

    或者在Onclose()的时候
    destroy
    强制释放没有释放的内存资源
      

  3.   

    看看哪里 new 了内存。。 然后delete  记住 指针数组 加【】
      

  4.   

    是不是调用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();
    }//////这样就会报错!该怎么写啊~~??
      

  5.   

    我发现destroywindow()没有执行成功啊~?返回值为0,继续求解
      

  6.   

    用this->DestroyWindow()也要报错
      

  7.   

    有些是静态数据,windows会自动管理内存的。只要确保你的程序没有内存泄漏就是了。
      

  8.   

    没有发现内存泄露啊~~~
    问一下 DentistryDoctor(MVP-My heart will fly,in the sky.),图片加载了怎么释放??
      

  9.   

    兄弟,我也遇到这样的情况.不过,我的解决方法是使用摸态对话筐时,使用new 和delete
       cmydialg* pMydlg=new cmydialg(this);
             pmydlg->domodel();
       delete pmydlg;
      

  10.   

    1.你的模态对话框使用 new 分配内存,在关闭时没有delete
    可以在OnDestroy函数中delete 
    2.频繁的new /delete 会产生内存碎片,也会造成内存使用增长