【问题标题】:Getting COM Exception 80040154 on different machine在不同的机器上获取 COM 异常 80040154
【发布时间】:2010-12-20 01:40:28
【问题描述】:

我遇到以下问题,有人可以帮忙吗? 我使用 Tlbimp 实用程序并将 VB6 COM DLL 转换为 RCW DLL。在我的 Visual Studio 2008 中,我使用了“添加引用”并在 c# 类中使用了该 DLL。在我的机器上一切正常。 但是,如果其他人在他/她的机器上使用相同的项目,那么在该机器上他们会收到以下错误:“由于以下错误 80040154,检索具有 CLSID {x} 的组件的 COM 类工厂失败”。我试图在该机器上搜索该 CLSID GUID,但在 HKCR/CLSID 位置下找不到。

有没有人有线索/想法为什么它在不同的机器上出现问题以及我可以尝试解决这个问题?

谢谢。

【问题讨论】:

    标签: com vb6 tlbimp


    【解决方案1】:

    你确定要在另一台机器上安装 COM 对象吗?返回的错误意味着该类未注册。 tlbimp 只是创建一个包装程序集以将 COM 接口映射到 .NET,它不会转换 COM 对象本身,也不会随身携带它。

    将 VB6 COM 对象 DLL(或 .OCX)放在另一台机器上并运行 regsvr32 object.ocx,它现在应该可以工作了。

    【讨论】:

    • +1 虽然如果有 VB6 COM DLL 的安装,您应该只运行安装,而不是使用 regsvr32。可能还需要其他依赖项。
    【解决方案2】:

    如果您不喜欢注册 COM 对象的想法,请查看免注册 COM。

    http://msdn.microsoft.com/en-us/library/ms973913.aspx.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-04
      • 1970-01-01
      • 2014-02-13
      • 1970-01-01
      相关资源
      最近更新 更多