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 回答