【发布时间】:2011-12-28 18:36:50
【问题描述】:
尽管有多年的 Delphi 编程经验,但我只是遇到了一种我从未见过的支持 IUnknown 的类声明风格:
TBCUnknown = class(TBCBaseObject, IUnKnown)
private
FRefCount: integer;
FOwner : Pointer;
protected
function IUnknown.QueryInterface = NonDelegatingQueryInterface;
function IUnknown._AddRef = NonDelegatingAddRef;
function IUnknown._Release = NonDelegatingRelease;
function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
...
如您所见,将类方法分配给 IUnknown 接口方法是在类声明中完成的。这对我来说看起来真的很奇怪,特别是因为在调用构造函数之前我看不到如何分配 IUnknown 方法。这是某种编译时快捷方式,用于在类的方法和类接受的接口的接口指针之间进行分配,稍后在运行时解决?如果有人能提供一些关于它是如何工作的以及德尔福惯用语支持这种结构的信息,我想知道。
【问题讨论】: