如何在c#中创建skype类的实例?

时间:2013-01-14 17:55:06

标签: c# com skype skype4com

我正在尝试使用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_")

我不知道如何翻译。

另外,我发现following question似乎与此有关,但答案似乎不适用于c#。

如何在c#中创建Skype课程?

2 个答案:

答案 0 :(得分:5)

很简单就是

Skype skype = new Skype();

即使Skype在技术上是一个接口,你仍然可以在它上面调用new,因为它是一个COM接口,这就是C#com互操作的方式。

告诉我的方法是转到Skype课程的“转到定义”标签,它应该是这样的。

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

CoClass(typeof(SkypeClass))允许您在界面上调用new

答案 1 :(得分:2)

var skype= Activator.CreateInstance( 
Type.GetTypeFromProgID("Skype4COM.Skype")) as ISkype;