怎样实现VB的 set xxx = nothing ??(100分)

  • 主题发起人 主题发起人 一个过客
  • 开始时间 开始时间

一个过客

Unregistered / Unconfirmed
GUEST, unregistred user!
VB里面用
set xxxx = nothing
来释放一个COM对象,请问在delphi里面等价的语句是什么?

(是COM对象哦,不是VCL类,没有free方法的)
 
用试试 xxx=nil
 
倒是没有出错,运行通过了,但是我怎样证明确实释放了呢?
 
如果你是用Interface类型指向com对象的话,只要像楼上的仁兄(chshanghai)说的那样,
设置 XXX=nil就可以了,Delphi会自动为你减少相关的Com对象的引用计数;

估计:你无法释放是不是因为有多个Interace指向同一个com对象?
 
如是从iunknow中继承的它会自动释放
xxx:=nil是手工强制释放,
你可在释放后再调用一次Com中定义的函数试试
好好看看有关Interface的讲解吧
 
>>好好看看有关Interface的讲解吧
很想看看,不过找不到,是在help文件里面吗?

感谢大家的帮助
 
试一试这个:
xxx:= Unassigned;
 
Interface的讲解?向你推荐一本书:《Delphi高级开发指南》
 
有一本《delphi com深入编程》作者是Eric Harmon
对Interface讲的较透彻
 
就是xxx=nil <com内幕>一书有介绍。
设置xxx=nil通知com server 调用内部机制,释放掉com实例
 
按理说,你直接 Free 掉,COM Server 自动判断当 引用技术 减为 0 的时候就释放
你自己不用操心。
 
Com是引用计数的,当你用XXX=Nil时,系统会自动检查引用计数,当计数为0进才会释放对象.
 
好吧,那就=nil吧!

分数分给最先回答正确的和最先解释了这个答案的
 

Similar threads

回复
0
查看
978
不得闲
回复
0
查看
863
不得闲
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
后退
顶部