Unregistered skype dll when i change the solution platform to x64

0

I am using the Skype4COM.dll. When the solution platform is set to x86 there is no problem. But, when I change the platform to x64 I get a COMException :

Retrieving the COM class factory for component with CLSID {830690FC-BF2F-47A6-AC2D-330BCB402664} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

What is the problem here? Is this caused by the x86 development of Skype? Is there any way to use this dll to a 64 bit solution platform?

c#
.net
visual-studio-2010
skype
asked on Stack Overflow Dec 7, 2012 by Anastasios Vlasopoulos • edited Nov 6, 2017 by Anastasios Vlasopoulos

2 Answers

1

You need x64 libraries for 64-bit based applications that are consuming them. Skype does not offer an 64 bit compatible library. It is not possible, to host x86 libraries within x64 processes.

For more information refer to this site: http://community.skype.com/t5/Desktop-API-former-Public-API/64bit-Version-of-Skype4Com-dll/td-p/68234

Also AnyCPU won't work. About x64/x86-problems I suggest reading this article: http://blogs.msdn.com/b/rmbyers/archive/2009/06/09/anycpu-exes-are-usually-more-trouble-then-they-re-worth.aspx

answered on Stack Overflow Dec 7, 2012 by Carsten
1

As @Aschratt already stated, it is by no mean possible to host 32-bit dll in 64-bit process.

If it is absolutely necessary for you to have your application 64bit, you can run Skype dll in separate 32 process, and communicate with it using (for example) named pipes (netnamedpipebinding). Although, I would avoid such solution if it is possible to leave your process 32bit.

answered on Stack Overflow Dec 7, 2012 by Alexander Bortnik

User contributions licensed under CC BY-SA 3.0