Показать сообщение отдельно
  #2  
Старый 05.08.2019, 13:38
DenSarych DenSarych вне форума
Прохожий
 
Регистрация: 02.08.2018
Сообщения: 11
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Открыл для себя интерфейсы...
Увы, при закрытии программы вылетает сообщение "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
Ответить с цитированием