为什么继承接口报错 ( 积分: 50 )

  • 主题发起人 主题发起人 sunjunfeng3
  • 开始时间 开始时间
S

sunjunfeng3

Unregistered / Unconfirmed
GUEST, unregistred user!
undeclared identifier:'QueryInterface'
为什么必须要实现
function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
function _AddRef: Integer; stdcall;
function _Release: Integer; stdcall;
有没有没用实现这几个方法来使用接口
 
这几个方法在父接口里已经声明,实现了。继承就可以了阿。
yourinterface = class(IInterface),在子接口不必重写。

type
IInterface = interface
['{00000000-0000-0000-C000-000000000046}']
function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
function _AddRef: Integer; stdcall;
function _Release: Integer; stdcall;
end;
 
不重写一定会出错因为我的类是从TObject 继承的,然后我换成Component就没错了
ControlPack = class(TComponent,ISoft)
看来要使用delphi的接口不能从TObject根类继承的
 
TComponent = class(TPersistent, IInterface, IInterfaceComponentReference)
TComponent 才实现了IInterface
 
这就是说,如果要自己定义一个干净的类的话,就必须实现那些东西
 
你居然嫌弃TComponent不干净。。。[:(]
 
从 TinterfacedObject继承过来吧。
ControlPack = class(TinterfacedObject,ISoft)
 
帮你顶一个,接个小分
 
to fsldg

从 TinterfacedObject继承过来吧。
ControlPack = class(TinterfacedObject,ISoft)


这个才是正解~~~~~~~~
 
后退
顶部