首页 > Web开发 > 详细

CoHTMLDocument

时间:2015-12-25 20:53:34      阅读:236      评论:0      收藏:0      [点我收藏+]

http://blog.csdn.net/dlwxn/article/details/2860329

http://www.itnose.net/detail/120267.html

 

不知道是 线程内代码造成的内存泄露还是反复创建线程造成的  

线程里 用到了 以下代码 

function THtmlThreade.HtmlToText(HtmlText: WideString): WideString;
var
  V: OleVariant;
  Document: IHTMLDocument2;
begin
  Result := HtmlText;

  if HtmlText = ‘‘ then Exit;
  CoInitialize(nil);
  Document := CoHTMLDocument.Create as IHtmlDocument2;
  try
    V := VarArrayCreate([0, 0], varVariant);
    V[0] := HtmlText;
    Document.Write(PSafeArray(TVarData(v).VArray));
    Document.Close;
    Result := Trim(Document.body.outerText);
  finally
    Document := nil;
    CoUninitialize;
  end;
end;


好像v没有清除?
貌似 自己搞定了 线程里用到com 一定要自己手动释放  
initialization  
  OleInitialize(nil); 

finalization  
  OleUninitialize; 

另外要 用 CoInitializeEx(nil,COINIT_MULTITHREADED);  而不是 CoInitialize(nil); 

再次测试  内存没有增加  

不对之处 请指正 
 
 
 
 

CoHTMLDocument

原文:http://www.cnblogs.com/CodeGear/p/5076784.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!