嵌入Object的页面,IE因为多次刷新而崩溃,请问是什么原因导致的??

JoeXu 2003-11-12 02:45:58
程序基于IE的ATL ActiveX Control,功能是禁止IE的打印,打屏等。

问题是多次Refresh,IE会出错;而且每次Refresh,任务管理器中IE占用的内存都会增加.

.....
IE请求到下面这个页面:
<HTML><BODY onload="document.body.scroll='no'" TOPMARGIN=0 LEFTMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0>
<OBJECT classid="clsid:29E3C745-E3B1-4D45-ACE1-793F4E684DD3"
ID=Myobj width="100%" height="100%" align="top"
CODEBASE="http://192.168.1.118/vpp.cab#Version=1,0,0,7">
</OBJECT>
</BODY></HTML>
页面中的对象显示正确,但是当我快速刷新的时候,会出现下面的异常:
First-chance exception in IEXPLORE.EXE (MSHTML.DLL): 0xC0000005: Access Violation.

出现这个错误只会在快速refresh时才有(至于第几次refresh则是完全不确定的,有时刷新5,6次就会出错).

我review了代码,IInternetProtocol的几个method(比如IInternetProtocol::UnlockRequest,IInternetProtocol::Read,IInternetProtocolRoot::Terminate )我都正确重载并认为代码没有错....

另外每次刷新IE内存占用都会增加,但是我在重载的COM对象的FinalRelease()函数中都已调用了IWebBrowser2的Release().....

谁能救我????
...全文
238 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
JoeXu 2003-11-14
  • 打赏
  • 举报
回复
用BoundCheck来查内存leak,查不到有什么leak
liqi 2003-11-13
  • 打赏
  • 举报
回复
我猜是你的控件有内存或资源泄漏!!!

ruifan 2003-11-12
  • 打赏
  • 举报
回复
你的ATL COM是不是调用了很多HTML Dom的操作,
一定要做的干净,比如Addref,Release,否则多次刷新后就有问题.
JoeXu 2003-11-12
  • 打赏
  • 举报
回复
求救

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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