[英]Using CoInitialize in a Delphi thread
我在Delphi程序的線程內使用TIdHttp和TXMLDocument。 現在我想知道:
TIdHTTP
沒有COM依賴性。
TXMLDocument 可以依賴於COM。 在Windows上,它是Microsoft MSXML ActiveX組件的包裝,該組件使用COM。 如果使用其他DOM供應商(例如,XE7的OmniXML),則沒有COM依賴性。 您可以通過設置DefaultDOMVendor
全局變量來控制它。
必須從線程上下文中一次調用CoInitialize
和CoUninitialize
。 通常在TThread
的Execute()
方法中,如本示例流程所示:
procedure TMyThread.Execute; begin try CoInitialize(nil); try while not Terminated do begin DoWorkThatMayUseCOM; end; finally CoUninitialize(); end; except on E: Exception do // log exception Log(E); end; end;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.