检索具有CLSID {}的组件的COM类工厂失败

时间:2012-02-06 15:34:19

标签: c# com interop

运行C#Windows窗体应用程序时出现此错误:

Retrieving the COM class factory for component with CLSID {} failed 
due to the following error: 80040154 Class not registered (Exception 
from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

这出现在32位Windows XP的IDE中。有问题的COM组件是第三方dll,它肯定在相关机器上注册正常。我的项目是针对x86确定的。我只是在实例化组件的特定类时遇到错误,我使用的其他类工作正常。

我尝试过直接添加的组件作为参考,并且还创建了一个互操作程序集并引用了它,但得到了相同的结果。使用regsvr32取消注册并重新注册组件无济于事。

如果我在VB6应用程序中引用相同的组件并实例化同一个类,它工作正常!我很困惑,任何人都可以提供任何可能帮助我的建议吗?!

谢谢。

1 个答案:

答案 0 :(得分:1)

我通过更改实例化行来实现此目的:

Component.MyObject test = new Component.MyObject();

Component.MyObject test;

在这个阶段不确定为什么它应该有用但是它确实可以继续!我还在实例化与new关键字一起使用的其他类。