在不同的机器上获得COM异常80040154

时间:2009-11-24 21:40:21

标签: com vb6 tlbimp

我遇到了以下问题,有人可以帮忙吗? 我使用Tlbimp实用程序并将VB6 COM DLL转换为RCW DLL。在我的Visual Studio 2008中,我使用了“添加引用”并在c#类中使用了该DLL。我的机器上一切正常。 但是,如果其他人在他/她的机器上使用相同的项目,那么在该机器上他们会得到以下错误:“由于以下错误80040154,检索具有CLSID {x}的组件的COM类工厂失败”。我试图在该计算机上搜索该CLSID GUID但在HKCR / CLSID位置找不到。

有没有人有线索/想法为什么它在不同的机器上给出问题以及我可以尝试解决这个问题?

感谢。

2 个答案:

答案 0 :(得分:4)

您确实需要在另一台机器上安装COM对象吗?返回错误意味着该类未注册。 tlbimp只是创建一个包装器程序集来将COM接口映射到.NET,它不会转换COM对象本身,也不会随之携带它。

获取VB6 COM对象DLL(或.OCX),将其放在另一台机器上并运行regsvr32 object.ocx,它现在可以正常工作。

答案 1 :(得分:0)

如果您不喜欢注册COM对象的想法,请查看免注册COM。

http://msdn.microsoft.com/en-us/library/ms973913.aspx