Einzelnen Beitrag anzeigen

StTüff

Registriert seit: 3. Dez 2002
132 Beiträge
 
Delphi 2006 Enterprise
 
#1

Problem beim Beenden (DLL mit Formular und mODBC)

  Alt 12. Sep 2007, 10:22
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
Angehängte Dateien
Dateityp: zip perport_141.zip (227,0 KB, 14x aufgerufen)
  Mit Zitat antworten Zitat