2017-05-08 241 views
0

我試圖加載德爾福在一個線程中的XML文件,但我得到這個錯誤消息中加載XML文件:未安裝德爾福:一個線程

微軟MSXML

但是,我的代碼在線程外正常工作!

這裏是我的代碼:

procedure NewThread.Execute; 
begin 
    XMLDocument1 := TXMLDocument.Create(Application); 
    XMLDocument1.Active := True; 
    XMLDocument1.LoadFromXML('document.xml'); 
end; 

任何想法?

+1

嘗試調用CoInitialize和CoUninitialize在線程的上下文中 – Jason

+0

我剛剛試過CoInitialize(nil); XMLDocument1:= TXMLDocument.Create(Application); XMLDocument1.Active:= True; XMLDocument1.LoadFromXML('document.xml'); CoUninitialize;但我得到相同的錯誤 – user2224150

+0

沒關係謝謝你的幫助 – user2224150

回答

0

MSXML使用COM對象,錯誤消息意味着MSXML COM對象無法實例化。

第一步就是要經常檢查,如果MSXML確實是您的計算機上安裝,然後您必須調用CoInitialize/CoUninitialize在訪問COM對象的每個線程上下文,也許嘗試用一個try/finally語句包裹它

+0

如何檢查MSXML是否安裝? – user2224150

+0

您可以檢查您的Windows目錄中是否存在MSXML.dll文件 – Fero

+0

好的,非常感謝 – user2224150