2012-02-06 39 views
1

運行的C#Windows時,我收到此錯誤窗體應用程序:檢索COM類工廠組件具有CLSID {}失敗

Retrieving the COM class factory for component with CLSID {} failed 
due to the following error: 80040154 Class not registered (Exception 
from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)). 

這是出現在IDE上的32位Windows XP。有問題的COM組件是絕對有問題的註冊ok了機器上的第三方DLL。我的項目瞄準x86確定。我似乎只是實例化一個特定的類組件的時候,我用其他類工作正常獲取錯誤。

我試着只是直接加入作爲參考的成分,還創造了一個互操作程序集,並引用了,但得到了同樣的結果。有未註冊和重新註冊使用REGSVR32無濟於事的組件。

如果我引用相同的組件在VB6應用實例同一類正常工作!我完全困惑,任何人都可以提供任何可能幫助我的建議?!

謝謝。

+2

嗯,你消除了明顯的原因。剩下的就是DLL Hell,你使用的類型庫可能與實際安裝的組件不匹配。您可以通過運行SysInternals的ProcMon實用程序獲得更多信息。你會看到你的程序在註冊表中搜索CLSID鍵。您可以直接使用OleView.exe程序查看類型庫。文件+查看Typelib。您通常需要組件供應商的幫助來解決這個問題。 – 2012-02-06 17:12:09

回答

1

我通過改變實體化線得到了這個工作:

Component.MyObject test = new Component.MyObject(); 

Component.MyObject test; 

不知道在這個階段爲什麼要工作,但它確實讓我矣!我仍然在實例化與new關鍵字一起使用的其他類。

相關問題