2009-11-24 79 views
1

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

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

谢谢。

回答

4

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

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

+0

+1虽然如果有一个VB6 COM DLL的安装,你应该运行安装,而不是使用regsvr32。可能还需要其他的依赖关系。 – MarkJ 2009-11-25 17:55:21