Hallo zusammen!
Ich poste diesen Thread in "Sonstige Fragen zu Delphi", weil ich mir nicht ganz sicher bin, wo das Thema einzuordnen ist.
Ich möchte eine
DLL erstellen, die mir Daten aus einer Datenbank (die nur per
ODBC erreicht werden kann) aufbereitet und zur Verfügung stellt. Die
DLL wird später dann in Verbindung mit diversen Scriptsprachen verwendet. Für den Datenzugriff verwende ich mODBC. Da der Anwender noch einige Einstellungen vornehmen muss, verwende ich in der
DLL auch ein
VCL-Formular, auf dem auch die Datenbankzugriffskomponenten platziert sind.
Um es etwas klarer zu machen, habe ich gleich ein Beispielprojekt angehängt.
Es beinhaltet den Quellcode der
DLL + eine Exe-Datei, welche die exportierte Funktion aufruft (nach einem Click auf den Button). Als Datenquelle kann zum Testen eine beliebige
ODBC-Datenquelle verwendet werden.
Das Problem entsteht erst beim Beenden. Wenn ich Form1.free aufrufe gibt es eine Speicherschutzverletzung und es wird ein Runtime-Error angezeigt. Verzichte ich auf das free, so erhalte ich keine Fehlermeldung, das Formular wird dann aber auch nicht korrekt freigegeben.
Ich vermute, dass es mit der Reihenfolge zu tun hat in der die einzelnen Bestandteile freigegeben werden. Mir ist aber weder klar, wie ich das herausfinden, noch wie ich das lösen/beeinflussen kann.
Ich habe schon versucht dass Fromular zu verschiedenen Zeitpunkten frei zu geben: ohne Erfolg.
Vielleicht hat jemand eine Idee dazu....
Gruß und schon mal vielen Dank,
StTüff