我正在尝试使用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课程?
答案 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;