Я попытался вернуть из dll функцию свой собственный объект (полученный из TCollection). Я использовал FastMemoryManager, но без успеха ... Поэтому я попытался вернуть динамический массив некоторых объектов.
Длина массива, конечно, в функции dll. Он работает с реальной надежностью, но выделенная память не освобождается.
(Я измеряю с помощью менеджера Windows tarsk). Есть ли возможность освободить динамический массив? Процедура, которая вызвать функцию DLL находится в потоке, и в конце концов у меня есть следующие:return TCollection или массив объектов из 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: = ноль,
FreeAndNil (MyObjectArray) исключение был поднят.
Любое предложение?
От вас [последний вопрос] (http://stackoverflow.com/questions/3529039/delphi-plugin-framework), я думал, что вы решили * не * использовать DLL. Почему вы решили использовать их в любом случае? –
Этот вопрос связан с другим проектом, гораздо проще. Я просто хочу переместить некоторые функции из exe в dll без большой передачи данных между ними. Мой другой вопрос, о чем вы упоминаете в своем комментарии, касается проекта, в котором мне нужны TFrames и TForms для включения в основное приложение в качестве детей MDI и т. Д. Таким образом, BPL или другие альтернативы по-прежнему актуальны;) – Peter