0

我正在使用Skype4COM.dll. 当解决方案平台设置为 x86 时没有问题。但是,当我将平台更改为 x64 时,我得到COMException

由于以下错误,检索具有 CLSID {830690FC-BF2F-47A6-AC2D-330BCB402664} 的组件的 COM 类工厂失败:80040154 未注册类(HRESULT 异常:0x80040154 (REGDB_E_CLASSNOTREG))。

这里有什么问题?这是Skype的x86开发造成的吗?有没有办法将此dll用于64位解决方案平台?

4

2 回答 2

1

您需要 x64 库用于使用它们的基于 64 位的应用程序。Skype 不提供 64 位兼容库。在 x64 进程中托管 x86 库是不可能的。

有关更多信息,请参阅此站点:http: //community.skype.com/t5/Desktop-API-former-Public-API/64bit-Version-of-Skype4Com-dll/td-p/68234

AnyCPU也不起作用。关于 x64/x86-problems 我建议阅读这篇文章: http: //blogs.msdn.com/b/rmbyers/archive/2009/06/09/anycpu-exes-are-通常-more-trouble-then-they-重值.aspx

于 2012-12-07T14:04:21.310 回答
1

正如@Aschratt 已经说过的,在 64 位进程中托管 32 位 dll 绝不可能。

如果您的应用程序绝对需要 64 位,您可以在单独的 32 进程中运行 Skype dll,并使用(例如)命名管道(netnamedpipebinding)与其通信。虽然,如果可以让您的进程保持 32 位,我会避免这种解决方案。

于 2012-12-07T14:10:25.297 回答