COM类出厂错误

时间:2010-01-28 19:29:58

标签: c# com clsid

当我尝试使用COM对象时,我的工作站上出现以下错误。

  

未处理的类型异常   'System.Runtime.InteropServices.COMException'   发生在CarteGraphInterface.exe

     

其他信息:检索   用于组件的COM类工厂   CLSID   {3963F0F8-6B0C-4A65-90F4-F60168044014}   由于以下错误而失败:   80040154

我在这里阅读了a few questions,其中没有人帮助过。该ID未在注册表中的任何位置列出。是否需要添加?

更新:更多信息。当我在VS2008中选择“添加引用...”时,会在那里列出对象(这是我最初找到它的方式),并且源被列为* .exe。 regsrv32不起作用。

3 个答案:

答案 0 :(得分:2)

可能需要使用

注册COM DLL
regsvr32.exe /i dllname

首先尝试一下,看看是否有所作为。

编辑:不知道你是否使用它,但COM Explorer也可以帮助你。如果它可以帮助您解决此问题,请尝试使用the trial版本。

编辑:我一直在努力找到有关错误代码的更多信息,我能找到的最好的是this,它澄清了它必须是未注册的DLL。

答案 1 :(得分:0)

您是如何添加对项目的引用的?使用COM时,您几乎总是应该在“COM”选项卡中添加引用(而不是“浏览”),这可以确保您获得对已注册对象的有效引用,从而创建新的互操作程序集。但是,如果您有注册问题,则很可能在COM选项卡上找不到所需的引用。

首先,COM组件存在于可执行文件中是非常奇怪的(虽然它是可能的)。也许这个组件不应该从另一个应用程序实例化,所以所有注册数据都被删除了?我建议联系任何有这个组件的人,并要求提供可注册的dll版本。

答案 2 :(得分:0)

这些解决方案都没有奏效。我假设它们实际上没有可以与.NET一起使用的API(如果有的话)。