Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.587 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Interface problem/crash

  Alt 20. Aug 2021, 17:49
Bei einer eigenen Klasse, die das Interface implementiert, ist das sehr einfach:
Überschreibe einfach _Release und setze dort einen Haltepunkt.

Eine mögliche Ursache:
Du übergibst ein Objekt direkt über den Aufruf des Konstruktors als konstanten Parameter.
Delphi-Quellcode:
procedure Blub(const AData: IInterface);
...
Blub(TMyClass.Create);
An der Stelle funktioniert die Referenzzählung nicht korrekt, weshalb man die Instanz immer zuerst in eine Interfacevariable speichern muss. Diese Variable kann man dann an die Methode übergeben:
Delphi-Quellcode:
Test := TMyClass.Create;
Blub(Test);
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat