System.Runtime.InteropServices.COMException(0x80040154):

Cha*_* Ma 17 c# exception

我在ac#项目中遇到异常:

System.Runtime.InteropServices.COMException(0x80040154):由于以下错误,检索具有CLSID {877AA945-1CB2-411C-ACD7-C70B1F9E2E32}的组件的COM类工厂失败:80040154.

这意味着什么?

csh*_*net 32

这意味着类ID 877AA945-1CB2-411C-ACD7-C70B1F9E2E32不在注册表中.

您可以通过打开regedit.exe进行验证,浏览到HKEY_CLASSES_ROOT\CLSID\{877AA945-1CB2-411C-ACD7-C70B1F9E2E32}.如果您在64位操作系统上运行32位应用程序,请查找HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{877AA945-1CB2-411C-ACD7-C70B1F9E2E32}

如果它在那里,它可能是一些其他问题,但它可能会丢失.要解决此问题,您通常会运行分发此COM对象的安装程序.如果您没有,并且您知道dll实现了该对象,则可以运行regsvr32.exe(或用于托管dll的regasm.exe).


CJB*_*JBS 5

我在 64 位操作系统上从 Win Forms C# 项目运行 C++ COM DLL。我将 Win Forms C# 项目更改为 x86,重新运行,并且成功了。去做这个:-

  1. 右键单击 .NET 项目,然后选择“属性”
  2. 选择构建选项卡
  3. 平台目标设置为x86
  4. 重新编译,重新运行

乔治 J 的回答中改变位数的概念