mar*_*_ja 4 delphi dll memory-management
当我想在DLL中导出类时,从接口派生它并通过导出函数返回该接口是否正确?
//exported dll function, which is used in the exe.
function MyClass_Create: IMyClass;
begin
result := TMyClass.Create;
end;
Run Code Online (Sandbox Code Playgroud)
内存管理怎么样?我可以传入/传出不同的接口和字符串而不用担心和崩溃吗?
IMyClass = interface
procedure SetString(aMsg: string);
function GetString: string;
procedure SetClass(aClass: ITestClass);
function GetClass: ITestClass;
end;
Run Code Online (Sandbox Code Playgroud)
接口引用与内存管理正交.通常导出一个从dll返回接口引用的函数,而不关心内存管理.使用引用计数接口,您可以确保实现接口的对象实例也将在dll中释放.
字符串是不同的.导出接口或导出平面函数无关紧要 - 适用相同的限制.
BTW您的问题标题不正确,Delphi中没有"界面实例".
| 归档时间: |
|
| 查看次数: |
558 次 |
| 最近记录: |