Danke für die Tips.
Mit Postmessage hatte ich schon experimentiert. Hat auch funktioniert.
Bei dem Callback bin ich gelandet, weil ich einen
Dll Handler für das Programm
geschrieben habe (und ein Modul auf
Dll Seite)
1. Die
Dll wird mit Loadlibrary erzeugt.
2. Es wird Aplication.Handle, Parenhandle und
Dll-
Handle übergeben.
3. Die Form wird mit Show angezeigt.
4. Bei Close der Form in der
Dll wird die Form mit Action := cafree freigegeben.
5. Das aufrufende Programm (hier der
Dll Handler) wird über Callback informiert, dass die
Dll freigegeben werden kann. Dazu wird das eigene (vorherübergebenen
DLL-
Handle als Kennung
benutzt.
Kann man eigentlich in der
Dll das
Handle derselben herausbekommen?
Der Vorschlag mit Messages und PostMessage ist eleganter. Hier habe ich jedoch das Problem,
dass mein
DLL Handler nicht von Twincontrol abstammt und keine Botschaften empfangen kann.
Hier müßte ich dann im Mainfenster der Anwendung die Botschaft abfangen und zum dem
Handler durchschleifen.
BPL möchte ich aus zwei Gründen nicht verwenden.
1. Ohne eine automatische Updatekontrolle ist das System zu störanfällig.
Das Programm muß unter sehr robusten Umgebungsbedingungen laufen und das fast immer am
Wochenende. Ein Internetzugang steht meist nicht zur Verfügung.
Die Beziehungen zwischen Hauptpgrogramm und
Dll sind so lose, dass eigentlich nur der
Datenbankname (Firebird) und eine ID zu übergeben sind.
2. Sollte ich in absehbarer Zeit gezwungen sein, auf Net überzugehen, dann kann ich große
Teile des Programms (die
Dll) erst einmal weiternutzen.
Kennt wehr übrigends ein brauchbares (auch kostenpflichtiges)
DLL Framework?
Gruß
Peter