Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#13

AW: TObject, DLL, DLL Freigabe

  Alt 14. Mär 2014, 16:24
Zitat:
Wennn du Interfaces nutzt und nicht willst, daß die DLL vor Freigabe des Interfaces freigegeben wird
...die Frage ist doch, was passiert mit dem Inhalt des Interfaces bzw. der Liste mit den Interfaces beim Entladen der DLL? Bleibt das erhalten?
Das Interface geht "kaputt".

Der Speicher in der Liste wird vom Speichermanager der DLL freigegeben
und der Code, auf welchen die Funktionen des Interfaces zeigen ist weg da er ja in der DLL war.



Man könnte zwar absichtlich den Speichermanager zerschießen, damit er die "Speicherlecks" beim Beenden nicht freigibt,
oder man baut seine TList so, daß sie den Speicher z.B. direkt bei Windows holt und nicht über den Speichermanager geht,
oder man sorgt dafür, daß der Speichermanager nicht genutzt wird und stattdessen der Speichermanager der EXE verwendet wird (SharedMM),
aber es fehlt dann immernich der Code (alle Methoden, die man in dem Interface aufrufen kann), welcher die Liste verwaltet.

Die Liste müsste also in der EXE erstellt werden und alle Strings/Inhalte, dürfen nicht im Speichermanager der DLL liegen.
> Kein String, sondern nur WideString darf im Interface verwendet werden und auch sonst nichts, was im Speichermanader der DLL landen könnte.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat