您的位置:首页 > Web前端 > HTML

CoHTMLDocument

2015-12-25 19:32 477 查看
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);

再次测试 内存没有增加

不对之处 请指正
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: