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

@Aschrattがすでに述べたように、64ビットプロセスで32ビットdllをホストすることは決して不可能です。

アプリケーションを64ビットにすることがどうしても必要な場合は、Skype dllを別の32プロセスで実行し、(たとえば)名前付きパイプ(netnamedpipebinding)を使用して通信できます。ただし、プロセスを32ビットのままにすることが可能であれば、このような解決策は避けたいと思います。

于 2012-12-07T14:10:25.297 に答える
1

x64 ライブラリを使用する 64 ビット ベースのアプリケーションには x64 ライブラリが必要です。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-usually-more-trouble-then-they- re-worth.aspx

于 2012-12-07T14:04:21.310 に答える