Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

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

AW: interface und variable des implementierenden objekts

  Alt 12. Dez 2011, 07:07
Leite dein Interface am besten von IUnknown ab, dann wird COM benutzt. Das sollte korrekt funktionieren.

Benutzt du die Referenzzählung auch zur Freigabe der Objekte? Wenn nein, ist dein Grundkonzept bedenklich, da du nie sicher sein kannst, dass das Objekt hinter dem Interface noch existiert, wenn du es benutzt. Denn wenn du parallel das Objekt nutzt und ggf. freigibst, bekommen gespeicherte Referenzen davon nichts mit...

Ich denke hier wird der Segen des automatischen Freigebens von Interfaces einfach zum Fluch, woher soll der Compiler wissen dass da nochmals jemand drauf zugreift, wenn der Zugriff aus einer DLL erfolgt und im Hauptprogramm keiner mehr Interesse dafür zu haben scheint.
Da das über _AddRef und _Release gemacht wird, sollte das problemlos gehen, vorausgesetzt diese Aufrufe kommen auch korrekt an. Aber man darf halt das dahinterliegende Objekt nicht ohne die Referenzzählung zu beachten freigeben.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat