请问VC,如何释放回收内存?现在VC中有一个对话框,启动后内存占15M,当最小化后,内存只有2M.请问如何像最小化那样释放内存.
===但并不是最小化的功能.请高手们帮帮忙!谢谢

解决方案 »

  1.   

    不是,是一个浏览器控件.webbrowser2
      

  2.   

    不能从任务管理器中看内存的释放,那是操作系统管理的范畴,即使是微软件自己的软件,最小化后从任务管理器中看到的内存也会变小,
    程序中的内存释放,总之记住址有申请的地方就要释放,有new 就要delete 就可以了.
      

  3.   

    起个时钟调用SetProcessWorkingSetSize(GetCurrentProcess(),0,0);其实内存并未释放,只是收缩工作集而已,就是把暂时不用的内存换到硬盘上,那么看起来的内存使用量就少了,实质并没少。那webbrower在最小化的时候某些绘图资源并不工作,系统检测到这部分内存会把他们换到硬盘上,所以看到了15M->2M现象。不推荐使用SetProcessWorkingSetSize。
      

  4.   

    C++需要自己管理内存
    如果是new对象,就要用delete释放它
    就是说,在LZ想释放你用的内存的话,delete 对象就行了。包括图像,数据等等。
    想用的时候再new它。有些资源有专门的释放方法。具体情况具体分析。不知道你想释放一些什么内存。
      

  5.   

    对,讲到重点上边了。
    浏览器控件.webbrowser2是你自己做的,还是人家开发好的控件?
    这个界面上有什么特别之处或者特别功能?
      

  6.   

    ActiveX 里的控件.一个图片 和一个树状目录.
      

  7.   

    请问为什么不推荐使用SetProcessWorkingSetSize。
      

  8.   

    SetProcessWorkingSetSize只不过是将不用的内存换到硬盘中,并没有释放掉,当要使用的时候还要重新从硬盘上加载到内存中,影响运行效率。
      

  9.   

    .  最小化的时候物理内存变小,是操作系统针对客户端程序的一个策略,所有的程序都会有这样的表现,你可以看看虚拟内存,其实没降;
    .  如果你的程序在某种情况下可以处于低耗状态,是可以使用SetProcessWorkingSetSize的,至少看起来少了,实际上是用运行效率来交换这个内存量;推荐的做法:
    还是自己控制好内存的占用,注意使用的api,能少链接系统库就少链接,比如一个htons函数就需要加载一个网络的库
    动态库可以做成使用的时候加载,比如delay load技术
    用purify plus等工具检查你申请的内存是否及时释放了,也就是内存泄露了
      

  10.   

    SetProcessWorkingSetSize(GetCurrentProcess(),-1,-1);