我收到了这个错误:
由于以下错误,检索具有CLSID {6C9E80E3-B780-4361-A693-5E5C6BDC83A9}的组件的COM类工厂失败:80040154。
Dim smgrGlobal As QBSessionManager
smgrGlobal = New QBSessionManagerClass()
第二行是错误的一行 我只在QB2013和QBFC12上出现此错误。任何以前的版本都不会发生这种情况 我可以找到,这个错误是由于应用程序没有为x86编译(如果使用“任何CPU”)。但是我已经设置我的应用程序编译为x86而不是“任何CPU”我仍然收到此错误。
答案 0 :(得分:6)
COM错误0x80040154字面意思是“类未注册”。引用的“类”是您尝试实例化的组件的COM类。以下是您可能会收到此错误的原因:
答案 1 :(得分:1)
如果更改为X86不起作用,请尝试以下操作: 我使用的是版本13,也适用于其他版本 安装QBFC13_0Installer.exe 确保先安装SDK 在我的系统上,它位于: C:\ Program Files(x86)\ Intuit \ IDN \ QBSDK13.0 \ tools \ installers
我有两个相同的Surface Pro 3与Windows 10.在一个系统上使用相同的代码副本编译并运行得很好。另一方面,我得到了可怕的类错误。经过大量搜索而没有找到解决方案后,我开始在黑暗中进行刺伤,这种特殊刺伤解决了这个问题。
答案 2 :(得分:0)
我在QB POS 2013上遇到了类似的问题。
运行具有管理员凭据的应用程序时出现此错误 - 当我在当前用户下运行应用程序时,一切正常。 出现此错误的原因可能是QBFC安装程序(或合并模块)中的问题 - 两个安装程序都在当前用户(HKCU)的注册表分支中写入COM组件类ID,而不是在本地机器分支(HKLM)上。因此,当您运行您的应用程序不在当前用户(管理员或其他用户)下时,应用程序找不到COM组件ID。
此外,常规QB XML(Interop.QBPOSXMLRPLIB)已正确安装并在所有用户下成功运行。
请在此处查看类似的讨论 - How can A COM component be registered halfway?。