C# COM类工厂错误

C# COM类工厂错误,c#,com,clsid,C#,Com,Clsid,当我尝试使用COM对象时,我在工作站上遇到以下错误 类型的未处理异常 'System.Runtime.InteropServices.COMException' 在CarteGraphInterface.exe中发生 其他信息:检索 组件的COM类工厂 CLSID {3963F0F8-6B0C-4A65-90F4-F60168044014} 由于以下错误而失败: 80040154 我已经通读了这篇文章,他们中没有一个人帮了我的忙。该ID未列在注册表中的任何位置。是否需要添加 更新:更多信息。当我

当我尝试使用COM对象时,我在工作站上遇到以下错误

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

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

我已经通读了这篇文章,他们中没有一个人帮了我的忙。该ID未列在注册表中的任何位置。是否需要添加


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

可能是您需要使用

regsvr32.exe /i dllname
也许先试试,看看这会不会有什么不同

编辑:不知道你是否使用这个,但COM浏览器可能也能帮助你。如果版本有助于解决此问题,请尝试使用该版本


编辑:我一直在试图找到更多关于错误代码的信息,我能找到的最好的信息是,这说明它一定是未注册的DLL。

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


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

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

这是我正在尝试与之交互的应用程序。他们有一个“未记录”的API。我知道他们有一个,因为他们可以“编写自定义程序”来做“我们想要的任何事情”。我想我会尝试一下,看看我找到的COM对象是否可以使用。对象浏览器准确地显示了我正在寻找的内容,并开始与之交互。可能是因为它需要VB和C,还是会出现同样的结果?