![]() |
Re: DLL nach Benutzung wieder freigeben
Wollte nochmal lieb nachfragen, ob das mit den Messages funktionieren kann? Ich dachte mir das so:
Wenn das PlugIn geschlossen wird (onCloseQuery etc) sendet es eine Nachricht an das Hauptprogramm. Dieses wertet die Message aus und gibt die DLL wieder frei (also das Plug-In) Danke |
Re: DLL nach Benutzung wieder freigeben
Zitat:
|
Re: DLL nach Benutzung wieder freigeben
Ja super! Ähm... kennt jmd. ein kleines Tut zum erstellen eigener Messages?
Danke! |
Re: DLL nach Benutzung wieder freigeben
Hallo,
z.B. RegisterWindowsMessage('MeinPlugIn_eins'); Das ruft sowohl deine Hauptprogramm also auch dein Plugin auf, der Return-Wert ist der gleiche. Dann über PostMessage(hMainWnd..) die Nachricht ans Hauptfenster (das hMainWnd muss das Hauptfenster aber an das Plugin übergeben). Heiko PS: Der Name sollte aber schon eindeutiger sein ;) |
Re: DLL nach Benutzung wieder freigeben
Danke, aber diese Methode verstehe ich nicht. Was bewirkt sie? Gibt es einen Unterschied zu dieser?
![]() Danke |
Re: DLL nach Benutzung wieder freigeben
Hallo,
ja, das ist das gleiche (weiter unten, nicht WM_USER + X) Windows erzeugt eine eindeutige Message-Nummer, egal wer RegisterWindowsMessage aufruft (könnten sogar 2 verschiedene Programme sein) Heiko |
Re: DLL nach Benutzung wieder freigeben
Also, ich habe es jetzt so gemacht:
Ich habe im Hauptprogramm und in dem PlugIn eine Message WM_UNLOADPLUGIN definiert. Beim Programmstart speichere ich das Handle von der MainForm und übergebe diese beim Öffnen an alle PlugIns. Da meine Plug-In-DLLs auch Forms enthalten, kann ich ja auf Schließen des PlugIns reagieren. In einem solchen Event sende ich einfach eine Message an das MainFormHandle mit WM_UNLOADPLUGIN und siehe da... es ist weg und der Speicher ist auch korrekt freigegeben! Zu der anderen Lösung von hoika: Dies scheint dann also das gleiche wie "meine" Lösung zu sein! Danke für eure Hilfe. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:33 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 by Thomas Breitkreuz