我有一個用 Delphi 6 撰寫的程式,它使用TXMLDocument,并且在運行時它使用 MS XML 3.0 決議器。但該程式The specified module could not be found在一臺計算機上報告錯誤,行程監視器報告該程式正在嘗試訪問 MS XML 4.0 模塊和注冊表項。此 4.0 安裝不完整/損壞,這就是訪問失敗的原因The specified module could not be found。
因此,核心問題是某種機制/決策演算法,該演算法TXMLDocument從使用所有當前 Windows 10 機器上的標準 MS XML 3.0 或 MS XML 6.0 版本TXMLDocument轉向使用 MS XML 4.0 版本。這個決策機制是什么TXMLDocument以及如何糾正它?
當然,我可以在客戶端計算機上找到、下載并安裝 MS XML 4.0,但這似乎不是正確的解決方案。
uj5u.com熱心網友回復:
這里沒有秘密魔法。使用什么機制是眾所周知的。您可以在 Delphi 的msxmldom.pas檔案中查看自己的源代碼。
當TXMLDocument使用MSXMLDOMVendor在Windows上,它只是要求CoCreateInstance()在一個回圈中嘗試實體不同版本的MSXML年代的硬編碼串列IXMLDOMDocumentCOM物件,在降低的版本順序,直到一個版本終于成功,要么都失敗。
當 Delphi 6 發布時,MSXML 6.0 還不存在,所以它不是一個嘗試的版本。您說 MSXML 4.0 在您客戶的系統上已損壞。因此,為什么最終使用 MSXML 3.0 是有道理的。
查看以下問題,了解如何TXMLDocument在如此舊的 Delphi 版本中使用 MSXML 6.0:
如何在 Delphi 7 中使用 MSXML 6.0 創建 TXML 檔案?
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/357943.html
