接口,當我想要一個DLL導出中的一類,它是從一個接口派生,並通過導出函數返回該接口是正確的做法?是可以安全使用的DLL從
//exported dll function, which is used in the exe.
function MyClass_Create: IMyClass;
begin
result := TMyClass.Create;
end;
什麼是內存管理?我能否通過輸入/輸出不同的接口和字符串而不用擔心和崩潰?
IMyClass = interface
procedure SetString(aMsg: string);
function GetString: string;
procedure SetClass(aClass: ITestClass);
function GetClass: ITestClass;
end;
使用的接口循環引用時,請注意潛在的內存泄漏的問題(即,實現類是指共享接口) - 在這種情況下,Delphi的缺乏一個垃圾收集器或「歸零弱指針」的特點。請參閱http://blog.synopse.info/post/2011/12/08/Avoiding-Garbage-Collector%3A-Delphi-and-Apple-on-the-same-side – 2012-01-13 09:15:00
循環引用是引用計數的常見問題。骯髒的技巧'指針(IntRef):= nil'可以幫助修改接口引用而不更改引用計數。 – kludg 2012-01-13 10:26:03