WebBrowser的内存问题

BoweirrKing 2005-10-11 01:31:01
我用代码在对话框中动态生成了一个WebBrowser控件,得到了一个CWebBrowser2指针m_pBrowser,然后用navigate2方法去访问网页。访问完毕后,先m_pBrowser->DestroyWindow(),再delete m_pBrowser,结果在访问网页的过程中它自行申请的内存释放不掉,这可怎么办啊?

看一个图多一点的网页,30多M内存就没了,还释放不掉。

请教各位大侠,这个问题怎么解决啊????

PS:动态生成的代码:
m_pBrowser=new CWebBrowser2;
m_pBrowser->Create("",WS_CHILD|WS_VISIBLE,rt,this,9000);
m_pBrowser->SetRegisterAsBrowser(FALSE);
m_pBrowser->SetSilent(TRUE);
m_pBrowser->ShowWindow(SW_SHOW);
...全文
1709 71 打赏 收藏 转发到动态 举报
写回复
用AI写文章
71 条回复
切换为时间正序
请发表友善的回复…
发表回复
zx_sanjin 2005-12-16
  • 打赏
  • 举报
回复
To BoweirrKing(忽然变傻):
我这几天在升级MyCSDN,分页浏览的,跟你的问题提到的差不多,但是我感觉性能是可以接受的,打开4个sohu中的页面(首页、新闻、邮件、汽车),一共用掉了160多M的虚拟内存,然后关掉,变成了50多M,过一会我又打开汽车的那个页,仍然50多M,应该不存在内存泄漏的问题。
你可以下一个MyCSDN来对比一下,希望能有更多的交流。最新版本在签名中。

你的代码我看过了,你是用CWnd和IWebbrowse2动态创建的,我是直接用CWebBrowse2 Create的,我比较懒,呵呵...

另外,我能结贴啊,不过会给错误提示,按“是”就结了。

-------------------------------------------------------
MyCSDN - CSDN离线数据浏览工具。(恒金软件出品)
可下载论坛文件、文档文章和全文搜索论坛数据以供离线浏览。支持签名回复。
下载地址:http://nj.onlinedown.net/soft/6591.htm
littlegang 2005-12-13
  • 打赏
  • 举报
回复
我的猜测,如果多个Browser公用一个application,那么有可能你开的程序中使用的IE内存继续被顶级IE进程所接管
BoweirrKing 2005-12-13
  • 打赏
  • 举报
回复
还是按下“给分”按钮没有用。真是有趣~
vc_asm 2005-12-12
  • 打赏
  • 举报
回复
好了没有,你快点结贴吧,我等分用:)
BoweirrKing 2005-12-12
  • 打赏
  • 举报
回复
我用的是Winxp SP2 IE6。
IE中没有装任何插件。
BoweirrKing 2005-12-12
  • 打赏
  • 举报
回复
还是结不了:(

总是报告网页上有错误。

我真是狂ft。要知道,给十几号人给分是很累很烦的事情,翻来覆去地做真是烦得要命!
BoweirrKing 2005-12-08
  • 打赏
  • 举报
回复
MSDN上写到:
IWebBrowser2::Quit Method

--------------------------------------------------------------------------------

Closes the object.

Syntax

HRESULT Quit(VOID);
Return Value

Returns S_OK to indicate that the operation was successful.

Remarks

The WebBrowser object ignores this method.

所以Quit方法对于控件没有任何作用
BoweirrKing 2005-12-08
  • 打赏
  • 举报
回复
狂晕,结了n次都没有成功~~~
littlegang 2005-12-07
  • 打赏
  • 举报
回复
littlegang@163.net
我觉得调用Quit应该是有用的
另外 通过GetApplication获得负责该程序的IE进程,并退出应该可以释放内存
xingzhou 2005-12-07
  • 打赏
  • 举报
回复
给我一份,谢了
wxz@csdn.net

-----------------
行舟
wxz@csdn.net
欢迎使用CSDN论坛浏览器
下载:http://blog.csdn.net/xingzhou/
leileiwudi 2005-12-06
  • 打赏
  • 举报
回复
路过~

学习一下
BoweirrKing 2005-12-06
  • 打赏
  • 举报
回复
今天结帖!
zx_sanjin 2005-12-04
  • 打赏
  • 举报
回复
sanjin@kingesoft.com

谢谢!



-------------------------------------------------------
MyCSDN - CSDN离线数据浏览工具。(恒金软件出品)
可下载论坛文件、文档文章和全文搜索论坛数据以供离线浏览。支持签名回复。
下载地址:http://nj.onlinedown.net/soft/6591.htm
BoweirrKing 2005-12-03
  • 打赏
  • 举报
回复
问题已基本解决,各方面指标均已达到我比较满意的程度了。可是目前我也无法全面地做到知其然而不知其所以然。但所幸能用了,呵呵。

需要解决方案的,请留下你们的邮箱,我会把解决方案发给你们的。


这样做是显得俺有点不厚道,但这的确和这个问题在这里放了2个月没有解决有关系。我想出现这局面是有很多的原因的,包括我包括整个大环境。可是无论怎样,这让我很不爽,现在终于有点眉目了,我只是想把有用的东西,留给帮助过我和需要它的人。
xingzhou 2005-11-29
  • 打赏
  • 举报
回复
to: 它最小化一会儿(不到一分钟)以后,线程数、所占物理内存数、虚拟内存数三者分别由原来的 27个、76M、89M降到了8个、3M、13M。而我的基于对话框的程序则不行。为什么会这样啊??????

这个是Windows的任务调度在起作用,与程序本身无关。

-----------------
行舟
wxz@csdn.net
欢迎使用CSDN论坛浏览器
http://blog.csdn.net/xingzhou/
xingzhou 2005-11-29
  • 打赏
  • 举报
回复
我时刻在留意却一直无法解决的老问题。

在控件的OnQuit事件中,调用Quit方法似乎能够减少内存的使用,虽然文档上说这个方法没有实现。

-----------------
行舟
wxz@csdn.net
欢迎使用CSDN论坛浏览器
http://blog.csdn.net/xingzhou/
femalelover 2005-11-27
  • 打赏
  • 举报
回复
我就奇怪为什么这帖子长期红火,原来问题一直没解决啊.
我的IE也是如此,关掉IE它也不释放内存空间.正郁闷呢.
ShawnSun 2005-11-17
  • 打赏
  • 举报
回复
关注.友情帮顶
fine10000 2005-11-17
  • 打赏
  • 举报
回复
学习ing
up!!
蒋晟 2005-11-15
  • 打赏
  • 举报
回复
文章后面的讨论就是说的这种情况。我的怀疑是初始化IE组件的时候初始化了一些东西,要在程序关闭时才释放,例如IE的历史记录信息什么的。
加载更多回复(51)

16,472

社区成员

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

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

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