COM 局部对象 释放(10分)

  • 主题发起人 主题发起人 wlmmlw
  • 开始时间 开始时间
W

wlmmlw

Unregistered / Unconfirmed
GUEST, unregistred user!
Tmy = class
private
FValue: integer;
end;
var
v: Tmy;
procedure
var
myv: Tmy
begin
myv := Tmy.create;
v := myv;
end;
--------------------------------------------------------
退出procedure之后,v对象是可用的。
但如果换成是:
Tmy = class( , Imy);
var
iv: Imy;
procedure
var
myv: Tmy;
begin
myv := Tmy.create;
iv := myv;
end;
--------------------------------
则退出procedure后iv是不可用的。为什么?
 
Imy是一个接口?可以直接声明接口对象?不明白。
 
当然可以。
很高兴你能来看我的贴子。
----------------------------------------------
可能是我问得不好。贴了很久都没人来光顾。
 
iv是接口对象,当引用计数为0时,会被自动释放的。
 
因为
iv := myv;
所以计数是不为零的。应该可以用,事实也是如此。
 
结束了吧。
 
后退
顶部