Delphi对接口采用引用计数的方法管理对象生命周期,但是DLL中输出的对象可能不是被Delphi调用,其引用计数不一定正确,因此DLL中接口对象的生命周期不由Delphi编译器自动生成的代码管理,而是程序员自己控制,所以上面的工厂包括构造和解析两个接口对象的生命周期管理方法。
所有接口对象应该集成自下面的接口,而不应该继承自Delphi自带的TInterfacedObject:
如果在DLL的函数中使用了字符串,还有记得在DLL和调用DLL的工程中单元的首行加入ShareMem,使用ShareMem后在发布执行执行程序是记得包含borlndmm.dll。
(一)DLL源码: