在DLL中使用webbrowser关闭时出错(100)

  • 主题发起人 主题发起人 BurningSky
  • 开始时间 开始时间
B

BurningSky

Unregistered / Unconfirmed
GUEST, unregistred user!
我在DLL子窗口中动态创建WEBBROWSER控件。用Navigate打开本地文件(打开方式:Navigate(本地文件绝对路径)),在DLL子窗口关闭时内存报错。将Navigate注释掉就OK。请各位FW帮忙。注意问题:1.在本地路径前加 file:///后无效2.用fastmm检测没有发现内存泄漏3.单步跟踪窗口close事件,事件中的语句没有错。4.若不动态创建webbrowser。关闭时不出错,但是其他先于这个子窗口打开的dll子窗口关闭时报错,报错地址相同(不能读某个地址)。自己考虑:1.可能还是某个地方又读取了已经释放的内存或是释放不彻底,可是不知道怎么去查找。2.对Navigate属性我解不深。3.webbrowser版本与当前ie版本不同造成的(工具:d2007,系统:win2000)?
 
1.webbrowser关闭之前 stop一下 试试2.webbrowser貌似有不可避免的内存泄漏,微软的问题。最好是用一个单独的进程调用,完了把进程关闭。 不然你的程序占用的内存会越来越大,free掉webbrowser也不能释放。
 
你是怎么动态释放控件的呢?
 
to: sujing19821.加stop试了,直接报错。报错内容记不清了。2.有这种可能。没有新开线程使用。我试一下。to :jianhs动态创建webbrowser.手动释放。释放前about:blank,然后freeAndNil.
 
自已顶一下
 
TWebBrowser一定会产生内存泄露这个事 IE的问题,建议你最好吧浏览器放到一个单独的进程中去,就是额外单独做一个EXE
 
to BurningSky把代码贴出来学习下
 
后退
顶部