有一些.net程序集,通过COM在delphi中调用它。
var
intf: ITest;
...
intf:= CreateComObject(CLASS_TEST) as ITest;
...
//here comes some stuff
...
我必须做点什么来破坏它以释放内存吗?或不?
COM 对象是引用计数的,当引用计数达到零时,它们会自动销毁。编译器会自动添加调用_AddRef
and _Release
每当您的代码添加对对象的引用或删除它时,都会使用接口方法。设置引用 COM 对象的变量nil
将会通知_Release
(减少引用计数),如果引用计数达到零,对象也会被释放(如果引用计数不为零,则不会)。当变量超出范围时(即局部变量,当过程退出时),编译器也会调用_Release
如果变量引用 COM 对象(或任何引用计数的 Delphi 接口)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)