【问题标题】:COM class factory error: 80040154COM 类工厂错误:80040154
【发布时间】:2012-08-04 10:28:11
【问题描述】:

我的客户收到以下错误,我了解到此错误是由于 32 位机器内置的 dll 用于 64 位机器而产生的。但我试图通过在 windows xp 32 位中构建一个简单的 dotnet dll 在本地复制这个错误,并尝试在 64 位机器的 windows 应用程序中引用。我仍然无法复制此错误。 错误消息:检索具有 CLSID {} 的组件的 COM 类工厂 由于以下错误而失败:80040154

请对此提供任何意见。

【问题讨论】:

  • 你在客户端机器上注册了dll吗?
  • 实际消耗 dll 的是什么?
  • 32 位程序在 64 位 Windows 上应该可以正常工作 - 我相信这通常是一个问题。
  • 当应用程序是 64 位或 AnyCPU 并且 dll 是 32 位时会出现问题,因为应用程序将在 64 位机器上加载为 64 位但无法使用32位dll
  • 我无权访问此应用程序,因为此应用程序存在于现场远程客户端中。所以我试图在离岸复制这个错误,这样我就可以对可能是什么问题有了一些基本的了解。我收到以下错误,“无法加载文件或程序集错误”,因为试图在 64 位机器中调用 32 位 dll,应用程序仅在 64 位中。此错误似乎与错误“检索具有 CLSID 的组件的 COM 类工厂”不同。因此,任何关于为什么会出现“COM 类工厂错误:80040154”的任何想法都会很有用。

标签: .net visual-studio dll


【解决方案1】:

在此处输入代码尝试确保您要查找的 COM dll 在目标计算机上正确注册。再看看客户端,如果客户端是.NET,你应该在x86模式下编译,才能使用32位activex库。

【讨论】:

    猜你喜欢
    • 2014-05-05
    • 2010-09-18
    • 2011-11-10
    • 1970-01-01
    • 2012-02-17
    • 2012-08-05
    • 1970-01-01
    • 2015-08-01
    相关资源
    最近更新 更多