尽管多年的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方法可以如何分配给它.这是一种编译时快捷方式,用于在类的方法和类接受的接口的接口指针之间进行分配,稍后在运行时解析?如果有人可以提供一些关于如何工作的信息,以及德尔福成语支持这种我想知道的结构.