我一直在寻找如何在C#中实现IUnknown的示例,但还没有找到任何像样的参考或解决方案。
是不是应该这么简单...
public interface IUnknown
{
UInt32 AddRef();
UInt32 QueryInterface([In] IntPtr riid, [Out] IntPtr ppvObject);
UInt32 Release();
}
...or还有更多的内容吗?
发布于 2013-05-23 21:48:20
为什么要实现IUnknown?那是一个COM接口。如果您希望与COM进行互操作,请使用.Net/COM桥,它为您实现了IUnknown。
发布于 2015-11-19 19:48:46
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface ISomeInterface
{
...
}
此属性执行ISomeInterface : IUnknown { ... }
发布于 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()。
https://stackoverflow.com/questions/16715602
复制相似问题