使用免注册COM库的问题

时间:2011-09-17 13:14:32

标签: .net com

我想在托管应用程序中使用非托管COM库(特别是Skype4COM),而无需注册此库。我的步骤是:

tlbimp Skype4COM.dll /out:Skype4COMWrapper.dll /namespace:Skype4COMWrapper
mt -tlb:Skype4COM.dll -dll:Skype4COM.dll -out:Skype4COM.dll.manifest

然后我在我的应用程序中引用了Skype4COMWrapper.dll并将Skype4COM.dll.manifest与应用程序可执行文件放在一起。一切都已成功构建,但当我尝试使用未注册的库时,我收到80040154错误(“未注册类”)。

我也查看了Skype4COMWrapper.dll并确保它包含COM清单条目。

我错过了什么?

2 个答案:

答案 0 :(得分:2)

似乎我已经解决了这个问题。我做了什么:

tlbimp Skype4COM.dll /out:Skype4COMWrapper.dll /namespace:Skype4COMWrapper
mt -tlb:Skype4COM.dll -dll:Skype4COM.dll -out:Skype4COM.dll.manifest

然后我在我的应用中引用了Skype4COMWrapper,创建了一个新的应用程序清单app.manifest,并在结束</asmv1:assembly>标记之前添加了以下依赖项:

<dependency>
  <dependentAssembly>
    <assemblyIdentity type="win32" name="Skype4COM.dll" version="1.0.36.0"
      processorArchitecture="x86" />
  </dependentAssembly>
</dependency>

Skype4COM.dllSkype4COM.dll.manifest与应用程序可执行文件放在一起。

答案 1 :(得分:1)

我也在努力解决这个问题。最新的Skype4Com库中有些东西被破坏了,你无法免费注册。我设法用一个msi安装它,这是我实现的最好的。查看此论坛,它对我帮助很大:http://community.skype.com/t5/Public-API/bd-p/Public_API