.NET建立COM元件後,要轉型成參考物件時,出現錯誤訊息:「0x80004002」
徵狀:
.NET建立COM元件後,要轉型CType成參考物件時,出以下的錯誤訊息
無法將型別 'System.__ComObject' 的 COM 物件轉換為介面型別 ProgId。
由於發生下列錯誤,介面 (IID 為 '{3B62ACDF-B9A1-4B6F-A596-2DE6E5E62AD8}') 之COM 元件上的 QueryInterface 呼叫失敗而導致作業失敗:
不支援此種介面 (發生例外狀況於 HRESULT: 0x80004002 (E_NOINTERFACE))。
發生原因:
這個是因為建立的COM物件與參考的COM物件介面不同所導致。 有可能是COM重新編譯過,所以CLSID與原先參考的不同。
解決方案:
方法 1:
重新參考註冊的COM元件。
方法 2:
不使用Early Binding方式,改用Late Binding建立物件,並且不加以轉型,不再使用CType。如: object myComObj = CreateObject(ProgId);
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^