AGB  ·  Datenschutz  ·  Impressum  







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

DLL nach Benutzung wieder freigeben

Ein Thema von TheMiller · begonnen am 13. Jun 2007 · letzter Beitrag vom 29. Jun 2007
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#11

Re: DLL nach Benutzung wieder freigeben

  Alt 29. Jun 2007, 14:28
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
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#12

Re: DLL nach Benutzung wieder freigeben

  Alt 29. Jun 2007, 15:01
Zitat von DJ-SPM:
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)
Das könnte so gehen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#13

Re: DLL nach Benutzung wieder freigeben

  Alt 29. Jun 2007, 15:10
Ja super! Ähm... kennt jmd. ein kleines Tut zum erstellen eigener Messages?

Danke!
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#14

Re: DLL nach Benutzung wieder freigeben

  Alt 29. Jun 2007, 15:20
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
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#15

Re: DLL nach Benutzung wieder freigeben

  Alt 29. Jun 2007, 15:29
Danke, aber diese Methode verstehe ich nicht. Was bewirkt sie? Gibt es einen Unterschied zu dieser? Eigene Message

Danke
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#16

Re: DLL nach Benutzung wieder freigeben

  Alt 29. Jun 2007, 15:51
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
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#17

Re: DLL nach Benutzung wieder freigeben

  Alt 29. Jun 2007, 16:07
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 19:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz