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) 例外が発生しました。
なにか提案を?