Цитата:
Открыл для себя интерфейсы...
Увы, при закрытии программы вылетает сообщение "Exception EInvalidPointer: Invalid pointer operation". Проблему не решает ни предварительное обнуление интерфейса (VHND:=nil), ни принудительный вызов метода _Release.
|
В Delphi, при использовании интерфейсов, можно использовать, как модель с автоудалением экземпляров, так и без неё. В первом случае, вы должны сами реализовать интерфейс IUnknown и методы _AddRef и _Release.
http://delphikingdom.com/asp/viewite...catalogid=1115
Кроме того, менеджер памяти в основной программе и dll, изначально разный. Для решения этой проблемы (например, в JvPlugin), при создании dll, устанавливается значение переменной Application, а при удалении -
она востанавливается в старое значение.
Примеры:
http://www.delphikingdom.com/asp/vie...?catalogid=512
https://www.gunsmoker.ru/2011/12/delphi.html