基于IE内核的浏览器,似乎用的虚拟内存不会释放,如果我的程序一直自动运行,最后就会虚拟内存不足,挂了。怎样才能释放虚拟内存?

解决方案 »

  1.   

    看看微软例子是否有同样问题?
    MFCIE Sample: Demonstrates the MFC CHtmlView and CReBar Classes 
    http://msdn2.microsoft.com/en-us/library/ms177540(VS.80).aspx
      

  2.   

    你的程序里是否执行了javascript等?感觉ta会有这种情况发生
      

  3.   

    执行了javascript,即便我不执行,访问的页面里也有自动执行的javascript,所以避免不了。
      

  4.   

    看看http://www.codeproject.com/jscript/leakpatterns.asp
    我自动化浏览器控件的时候总是每个任务新开一个进程的。
      

  5.   

    谢谢蒋大哥,我的程序是从网页里提取内容,需要不停翻页,所以我在OnDocumentComplete 里处理内容,然后继续Navigate到下一页继续处理。
    如果页数很多,最后的结局就是虚拟内存耗尽。我想每过一段时间清理一下,似乎没什么办法。另外,我是用CDhtmlDialog 做的,在处理的过程中,如果我取消(OnCancel),就经常出现这种情况:不停打开新的IE窗口,知道我把我的程序杀掉,不知道为什么?
      

  6.   

    我做过类似的程序,该程序经常一个接一个打开几百个页面,没有发现明显的内存泄些漏,不过我用ATL/WTL。
      

  7.   

    抓取大量数据就不要用CHtmlView了吧,
    效率太低。
    wget里有高效获取http文件的源码lz可参考之~~~
      

  8.   

    纯粹是脚本在捣乱。你可以捕获onunload事件,对事件对象的cancel属性设置true,bubble属性设置false,再关闭对话框时就能阻止调用网页里面的脚本