WebBrowser 如何释放资源

dknewu 2010-12-14 11:07:14
WebBrowser 控件放在一个Dialog里面,当我使用WebBrowser(MFC)访问网页后,删掉这个Dialog,但是WebBrowser 使用的资源,如内存, Handles, GDIObject都没有释放,我试过使用IWebBrowser->Stop(); IWebBrowser->Quit也不行
这个对话框是在一个DLL里面的,我使用完后调用FreeLibrary也不行
有些网站是可以的,但是有些网站就不行(如hotmail)。
请问各位有什么办法呢?
...全文
489 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
dknewu 2011-01-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 covsno 的回复:]

不能
你看看QQ新闻就知道了
他是另外开的进程QQHostService
[/Quote]
covsno 应该是解决方案之一吧,每次(或者N次)浏览单独开个进程,然后杀掉该进程,谢谢
leechiyang 2010-12-30
  • 打赏
  • 举报
回复
这有个技巧。
自定义的浏览器很容易出现内存泄露问题,如果你的程序开很长时间,浏览很多网页,内存占用会越来越多,可能会高达好几百M,需要调用js的垃圾回收函数。
covsno 2010-12-30
  • 打赏
  • 举报
回复
不能
你看看QQ新闻就知道了
他是另外开的进程QQHostService
untruefish 2010-12-17
  • 打赏
  • 举报
回复
试试clear()函数
  • 打赏
  • 举报
回复
试试这么几个方法:
(1)对所有WebBrowser控件相关的接口都是用智能指针,智能指针自动管理内存
(2)如果还不行,用内存泄露检测工具查下,可以找到具体内存泄露的地方,然后
有针对性的进行修改
dknewu 2010-12-15
  • 打赏
  • 举报
回复
IWebBrowser->Release, pWnd->DestroyWindow, CoUninitialze, FreeLibaray 这些办法都用过,没有效,实在是不解呀, IE怎么做成这样呢(我用的是IE8)
  • 打赏
  • 举报
回复
如果js写得不好内存有泄漏
bragi523 2010-12-15
  • 打赏
  • 举报
回复
你的那个对话框,就destroywindow,然后删掉对象就可以了
bragi523 2010-12-15
  • 打赏
  • 举报
回复
WebBrowser自动生成一个类哈,他会自己释放的,你自己定义的东西,自己释放掉就行了
对于com的对象,一般用.Release();释放
dknewu 2010-12-15
  • 打赏
  • 举报
回复
这个问题看来挺困难呀

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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