com里参数指针的传递问题(100分)

  • 主题发起人 主题发起人 zxwmail
  • 开始时间 开始时间
Z

zxwmail

Unregistered / Unconfirmed
GUEST, unregistred user!
C++里的参数声明-->out (void** ppv)
delphi在TLB里的声明-->out (ppv pointer)

而在delphi里interface里queryinterface也有一个类似的参数-->out obj,
但我不明白为什么obj没有变量说明,obj到底是个什么类型呢?我查不到资料,
delphi有关这方面的资料很少,我试着用variant,Iunknown,pointer,
pointer类型编译能通过,但运行就不对。我该如何声明这个接口呢?
 
你得先看看com方面的书籍。
QueryInterface是用来查询接口所支持的对象,
obj当然就是前面QueryInterface中指定的接口类型
比如:我们想查询WebBrowser的com对象是否支持IHTMLElement对象
我们可以这样:
MyObj:IHTMLElement;
....QueryInterface.(IHTMLElement,Myobj);
 
谢谢manfeel,我试着用这样的办法:
ppf:pointer;
ppi:IUnknown;
ppf:=@IUnknown;
就可以通过了,不过还没测试。
 
搞错了,ppf才是实际的接口指针,还得另想办法
 
我把tlb单元修改了
直接将参数改成out obj,就ok了
 
后退
顶部