AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Application in DLL auslagern

Ein Thema von BerndS · begonnen am 15. Mär 2022 · letzter Beitrag vom 18. Mär 2022
 
BerndS

Registriert seit: 8. Mär 2006
Ort: Jüterbog
492 Beiträge
 
Delphi 12 Athens
 
#1

Application in DLL auslagern

  Alt 15. Mär 2022, 20:18
Den gesamten Vcl Teil eines Programms habe ich in eine DLL ausgelagert. Das nutzt zum Start die Prozedur Run,die sich z.B. per Rundll32.exe starten lässt.
Der Sinn dahinter ist, das andere Programme einige Funktionen nutzen können und die eigentliche Exe,die die DLL lädt mit verschiedenen Versionen der DLL umgehen kann. So kann man ein temporäres Update einspielen ohne andere Nutzer das Programm beenden müssen.

Leider wird mit aktivierter Prüfung Speicherplatzfreigabe immer angezeigt, dass 12 Bytes nicht freigegeben wurden. Das war schon bei XE7 so und auch mit 11.1 ist das noch so.

Heute habe ich mir mal die Zeit genommen, die Ursache zu finden.
Letztendlich liegt der Fehler in der Methode TApplication.Run
Hier wird am Anfang ein AddExitProc aufgerufen. Bei DLLS werden diese aber nie ausgeführt und somit auch der Speicher der verketteten Liste nicht freigegeben.
Ein
Delphi-Quellcode:
...
if not IsLibrary then
  AddExitProc(...);
...
behebt das Problem.
Die 12 Bytes sind an sich nicht das Problem, aber man muss immer beim beenden die Meldung bestätigen und das hat mich schon lange gestört.
  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 02:29 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