首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在C#中实现IUnknown

在C#中实现IUnknown
EN

Stack Overflow用户
提问于 2013-05-23 21:44:43
回答 3查看 7.2K关注 0票数 6

我一直在寻找如何在C#中实现IUnknown的示例,但还没有找到任何像样的参考或解决方案。

是不是应该这么简单...

代码语言:javascript
复制
public interface IUnknown
{
    UInt32 AddRef();
    UInt32 QueryInterface([In] IntPtr riid, [Out] IntPtr ppvObject);
    UInt32 Release();
}

...or还有更多的内容吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-23 21:48:20

为什么要实现IUnknown?那是一个COM接口。如果您希望与COM进行互操作,请使用.Net/COM桥,它为您实现了IUnknown。

票数 7
EN

Stack Overflow用户

发布于 2015-11-19 19:48:46

代码语言:javascript
复制
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface ISomeInterface
{
   ...
}

此属性执行ISomeInterface : IUnknown { ... }

票数 4
EN

Stack Overflow用户

发布于 2016-03-14 02:26:12

问的是:{ ...出于兴趣,ID2D1Factory继承自IUnknown的Direct2D接口,所以我可能仍然需要用.NET实现这个接口……我不确定我在这里到底要做什么。- series0ne May 24 '13 at 8:51 ... }答案是否定的。从IUnknown派生一个类的全部意义在于,这样你的类就不必实现IUknown为你做的任何事情。它会自动处理像QueryInterface和AddRefCount这样的事情。你甚至不需要在C#或C++中做任何事情。在C++中,你可以使用CoCreateInstance(),在C#中,它是Activator.CreateInstance()。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16715602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档