Thema: Delphi String in dll aufräumen

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

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

Re: String in dll aufräumen

  Alt 25. Mär 2010, 11:14
Zitat von hanspeter:
kann es sein, das Delphi in einer Dll Strings beim Beenden nicht korrekt aufräumt?
eigentlich nicht


Zitat von hanspeter:
Da die dll ohnehin entladen wird, ist das zwar egal. Es sieht aber zumindest
unschön aus.
Ist es nicht.
Blos weil die DLL entladen wird, würde dennoch der Speicher erst beim Beenden der ganzen Anwengung freigegeben.

Aber zum Glück gibt FastMM den gemeldeten und in ihm noch nicht freigegebenen Speicher, nach der Anzeigen frei.
(Speicher, welcher nicht über FastMM reserviert und nicht freigegeben wurde wird nie angezeigt ... dazu zehlen z.B. WideStrings, bei welchen an der Speicherverwaltung aka der automatischen Freigabe manipuliert wurde)


Nutzt du Strings, dynamische Array, Objekte oder Dergleichen über die DLL-Grenze hinweg, z.B. als Parameter oder Funktionsergebnis drüben in der EXE?

Wenn ja:
- sowas macht man nicht (jedenfalls nicht ohne einen SharedMM)
- tja, dann liegt es an der Referenzzählung des Strings und in der EXE, zu diesem Zeitpunkt, noch existierender Referenzen.

Auch noch nicht freigegebene Intefaces könnten hier Probleme bereiten.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat