2013-02-22 136 views
4

我收到此錯誤:
與CLSID檢索COM類工廠組件{6C9E80E3 -B780-4361-A693-5E5C6BDC83A9}失敗,原因是出現以下錯誤:80040154檢索COM類工廠CLSID組件{6C9E80E3-B780-4361-A693-5E5C6BDC83A9}失敗,原因是出現以下錯誤:80040154

Dim smgrGlobal As QBSessionManager 
smgrGlobal = New QBSessionManagerClass() 

第二行是一個錯誤。
我僅在QB2013和QBFC12中出現此錯誤。這在任何以前的版本中都不會發生。
我盡我所能地發現,這個錯誤是由於應用程序沒有被編譯爲x86(如果使用「任何CPU」而不是)。但是,我已經設置了我的應用程序編譯爲x86不是「任何CPU」,我我仍然收到這個錯誤。

+0

http:// stackoverflow。com/a/2123678/62576有一個解釋,你可能想要跟進(檢查COM類是否實際註冊)。另一個原因是構建一個試圖使用32位ActiveX(或試圖加載64位ActiveX的32位)的64位應用程序。 – 2013-02-22 23:43:50

回答

5

COM錯誤0x80040154字面意思是「類未註冊」。被引用的「類」是您試圖實例化的組件的COM類。以下是原因你可能會得到這樣的錯誤:

  1. 正如你提到的,如果你建立與「64」或「任何CPU」,而不是「86」您的應用程序,你會看到這個問題。這是因爲32位進程使用與64位進程不同的註冊表配置單元,並且註冊表是保存有關COM類註冊信息的位置。
  2. 您尚未在當前本地計算機上正確安裝QBFC。無論您用於開發應用程序的QBFC版本是什麼,您都必須在運行應用程序的每臺計算機上安裝相同版本的QBFC。如果你不這樣做,你可能會很幸運,因爲別人安裝了正確的版本,但最終你會看到這個問題。讓我強調一下:默認情況下QBFC沒有與QuickBooks一起安裝。
  3. (不太可能,但可能)QBFC的COM註冊信息已被破壞。通過重新安裝正確版本的QBFC可以解決此問題。
0

我有QB POS 2013年

使用管理員憑據運行應用程序時,我收到此錯誤類似的問題 - 當我在當前用戶下運行的應用程序一切正常。 此錯誤的原因可能是QBFC安裝程序(或合併模塊)中的問題 - 兩個安裝程序都在當前用戶(HKCU)的註冊表分支中寫入COM組件類ID,而不是本地計算機分支(HKLM)。所以,當你不在當前用戶(管理員或其他用戶)下運行你的應用程序時,應用程序找不到COM組件ID。

此外,常規QB XML(Interop.QBPOSXMLRPLIB)正確安裝併成功運行在所有用戶下。

請看這裏的類似討論 - How can A COM component be registered halfway?

0

如果改爲X86不起作用試試這個:我使用的是13版 ,可能適用於其他版本的工作太 安裝QBFC13_0Installer.exe 確保你安裝SDK第一 在我的系統,正在接受: C:\ Program Files文件(x86)\ Intuit \ IDN \ QBSDK13.0 \工具\安裝程序

我有兩個相同的Surface Pro 3s與Windows 10.使用相同副本的代碼在一個系統編譯和運行就好。另一方面,我會遇到可怕的班級錯誤。經過大量搜索,找不到解決方案後,我開始在黑暗中進行刺探,並用這個特殊的刺來解決問題。

相關問題