Quickbooks 由于以下错误,检索CLSID为{6C9E80E3-B780-4361-A693-5E5C6BDC83A9}的组件的COM类工厂失败:80040154

Quickbooks 由于以下错误,检索CLSID为{6C9E80E3-B780-4361-A693-5E5C6BDC83A9}的组件的COM类工厂失败:80040154,quickbooks,qbfc,qbxml,Quickbooks,Qbfc,Qbxml,我收到以下错误: 由于以下错误,检索CLSID为{6C9E80E3-B780-4361-A693-5E5C6BDC83A9}的组件的COM类工厂失败:80040154 Dim smgrGlobal As QBSessionManager smgrGlobal = New QBSessionManagerClass() 第二行是出错的行。 我只在QB2013和QBFC12中得到这个错误。任何以前的版本都不会出现这种情况。 据我所知,这个错误是由于一个应用程序没有为x86编译(如果使用了“任何CP

我收到以下错误:
由于以下错误,检索CLSID为{6C9E80E3-B780-4361-A693-5E5C6BDC83A9}的组件的COM类工厂失败:80040154

Dim smgrGlobal As QBSessionManager
smgrGlobal = New QBSessionManagerClass()
第二行是出错的行。
我只在QB2013和QBFC12中得到这个错误。任何以前的版本都不会出现这种情况。

据我所知,这个错误是由于一个应用程序没有为x86编译(如果使用了“任何CPU”),但是我已经将我的应用程序设置为为为x86编译而不是“任何CPU”,并且我仍然收到这个错误。

COM错误0x80040154字面意思是“未注册的类”。引用的“类”是您试图实例化的组件的COM类。以下是可能出现此错误的原因:

  • 正如您所指出的,如果您使用“x64”或“任意CPU”而不是“x86”构建应用程序,您将看到此问题。这是因为32位进程使用与64位进程不同的注册表配置单元,并且注册表是保存COM类注册信息的地方
  • 您尚未在当前本地计算机上正确安装QBFC。无论用于开发应用程序的QBFC版本是什么,都必须在运行应用程序的每台计算机上安装相同版本的QBFC。如果您不这样做,您可能会很幸运,因为其他人安装了正确的版本,但最终您会看到这个问题。让我强调一下:默认情况下,QBFC不是与QuickBooks一起安装的
  • (不太可能,但可能)不知何故,QBFC的COM注册信息已损坏。这个问题可以通过重新安装正确版本的QBFC来解决

  • 我对QB POS 2013也有类似的问题

    当使用管理员凭据运行应用程序时,我遇到此错误-当我在当前用户下运行应用程序时,一切正常。 此错误的原因可能是QBFC安装程序(或合并模块)中的问题-两个安装程序都在当前用户(HKCU)的注册表分支中写入COM组件类id,而不是在本地计算机分支(HKLM)上写入COM组件类id。所以,当您在当前用户(管理员或其他用户)下运行应用程序时,应用程序找不到COM组件ID

    此外,常规QBXML(Interop.QBPOSXMLRPLIB)已正确安装并在所有用户下成功运行


    请参见此处的类似讨论-

    如果更改为X86无效,请尝试以下操作: 我正在使用版本13,可能也适用于其他版本 安装QBFC13_0Installer.exe 确保首先安装SDK 在我的系统中,它位于: C:\Program Files(x86)\Intuit\IDN\QBSDK13.0\tools\installers

    我有两个与Windows 10相同的Surface Pro 3。在一个系统上使用相同的代码副本编译并运行良好。另一方面,我会犯可怕的班级错误。经过大量的搜索,没有找到解决方案,我开始在黑暗中尝试,这个特别的尝试解决了这个问题。

    有一个解释,你可能想继续解释(检查COM类是否已经注册)。另一个原因是构建一个64位应用程序,尝试使用32位ActiveX(或32位尝试加载64位ActiveX)。