我试图从 dll 函数返回我自己的对象(从 TCollection 派生)。我使用了 FastMemoryManager,但没有成功......所以我尝试返回一些对象的动态数组。
dll函数中当然设置的数组的长度。它工作得很好,但分配的内存没有被释放。
(我用 Windows tarsk manager 测量)。有没有可能如何释放动态数组?调用dll函数的过程在线程中,最后我如下:
for i := 0 to length(MyObjectArray) - 1 do begin
if MyObjectArray[i] <> nil then
MyObjectArray[i].Free;
end;
Setlength(MyObjectArray, 0);
MyObjectArray := nil;
如果我使用而不是Setlength(MyObjectArray, 0) 和 MyObjectArray := nil,
则会引发 FreeAndNil(MyObjectArray) 异常。
有什么建议吗?