Ik heb onlangs een dll versie van onze normale applicatie geschreven (simpele functies naar bepaalde functionaliteiten). Mijn ervaringen met DLL schrijven zijn daarom nog niet om naar huis te schruiven. Dit werkt allemaal prima totdat de applicatie de dll met FreeLibrary(HandleName) uit het geheugen wil verwijderen. De caller blijft dan hangen, en Ctrl-F2 is nodig om de debugger te lossen.
Na een stevige internet search heb ik gevonden dat alle gecreëerde objecten eerst afgesloten (free-ed) moeten zijn alvorens men een dll afsluit. Dit heb ik braaf een unit of 50 door zitten buffelen...
Het blijkt dat alles netjes wordt opgeruimd. Nu is mijn vraag of je op een of andere manier kunt zien of er iets nog niet is opgeruimd.
In mijn DLL worden ook nog een aantal forms aangemaakt:
Application.CreateForm(TMainFrm, MainFrm);
Moeten deze voor sluiten DLL worden opgeruimd, of zorgt de DLL daar zelf voor.
Bookmarks