AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Plugin-System Version 3
Thema durchsuchen
Ansicht
Themen-Optionen

Plugin-System Version 3

Ein Thema von Henning der zweite · begonnen am 19. Jul 2009 · letzter Beitrag vom 15. Mai 2011
 
Henning der zweite

Registriert seit: 10. Mär 2008
Ort: Braunschweig
21 Beiträge
 
Delphi 5 Standard
 
#5

Re: Plugin-System Version 3

  Alt 20. Jul 2009, 10:07
Zitat:
mußt/darfst du auch nicht, denn diese Methode ruft jede "Programmiersprache" auf, wenn da eine Variable ala Interface-Referenz entfernt/freigeeben wird.
Dann lese dir mal den Thread bei Delphi-Treff durch, da habe ich das auch durchdiskutiert.

In diesen Thread - so denke ich jedenfalls - gehört diese Diskussion nicht.

Zitat:
du darfst dann nur dein Objekt nicht von TInterfacedObject oder einem seiner Nachfolger ableiten,
sondern mußt die Methoden für IInterface/IUnknown selber implementieren, bzw. diese Basisklasse verwenden:
Schon klar, so habe ich es auch gemacht (siehe Quelltext des Plugin-Systems).

Bzw. damit sich die Diskussion hat, das Problem nochmal auf den Knackpunkt gebracht:

(abgekürzter Delphi-Code)
In der DLL:
Delphi-Quellcode:
func ExportIntf: IIntf; //exportiert
  Result := TITestImpl.Create;
In der Anwendung:
Delphi-Quellcode:
DLL.LoadLib;
Intf := DLL.ExportIntf as ITest;
Intf := nil;
DLL.FreeLib;
In dem Beispiel knallt es am Ende (ganz am Ende der Prozedur). Warum? Weil bei dem as-Cast eine temporäre Interface-Referenz entsteht, von der erst am Ende _Release aufgerufen wird - zu diesem Zeitpunkt wurde die DLL mitsamt des Objekts aber schon längst aus dem Speicher entfernt -> es knallt.
Henning D.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz