3

を活用しようとしていますSKYPE4COMLib.dll

私は過去のライブラリを参照してしまいました (ハァッ)、そして今、Skype のインスタンスを作成しようとしています:

Skype s=new SkypeClass();

次のエラーが表示されます。

The type 'SKYPE4COMLib.SkypeClass' has no constructors defined

Interop type 'SKYPE4COMLib.SkypeClass' cannot be embedded. Use the applicable interface instead.    

私が見たサンプルはVBであり、それらは使用します

Set oSkype = WScript.CreateObject("Skype4COM.Skype", "Skype_")

どのように翻訳すればよいかわかりません。

また、関連しているように見える次の質問を見つけましたが、答えはc#には当てはまらないようです。

c# で Skype クラスを作成するにはどうすればよいですか?

4

2 に答える 2

5

簡単に言うと

Skype skype = new Skype();

は技術的Skypeにはインターフェイスですが、COM インターフェイスであるため呼び出すことができますnew。これが C# com 相互運用のしくみです。

Skype クラスの「定義に移動」タブに移動すると、次のように表示されます。

[CoClass(typeof(SkypeClass))]
[Guid("B1878BFE-53D3-402E-8C86-190B19AF70D5")]
public interface Skype : ISkype, _ISkypeEvents_Event
{
}

それが、インターフェイスでCoClass(typeof(SkypeClass))呼び出すことができるものです。new

于 2013-01-14T18:59:05.163 に答える
2
var skype= Activator.CreateInstance( 
Type.GetTypeFromProgID("Skype4COM.Skype")) as ISkype;
于 2013-01-14T18:47:56.820 に答える