AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Fehler nach freigeben von DLL
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler nach freigeben von DLL

Ein Thema von gsh · begonnen am 23. Apr 2007 · letzter Beitrag vom 30. Apr 2007
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#1

Fehler nach freigeben von DLL

  Alt 23. Apr 2007, 11:51
Datenbank: MySQL • Version: 5.0 • Zugriff über: mysql.pas - libmysql.dll
Hi DPler

Ich kämpfe gerade mit einem schwierigen Problem:

Meine Programmstruktur:
Exe -> Datenbank.dll -> libmysql.dll -> MySQL Datenbank

Jetzt hab ich das Problem das wenn ich eine Abfrage durchführe und dann danach das Programm beende dann bekomm ich eine AV und danach einen Runtime Error.
So wenn ich keine Abfrage durchführe dann kommt beim beenden kein fehler.
Und der Fehler kommt auch nur wenn ich die Datenbank.dll beim beenden freigebe.
Die Datenbank.dll kann die libmysql.dll aber ohne probleme freigeben nur die exe darf die datenbank.dll nicht freigeben

So jetzt hab ich natürlich debuggt und aber leider ziemlich erfolglos da der fehler erst nach dem Appliaction.Run; auftritt und ich somit nicht wirklich debuggen kann.
Die Datenbank.dll kann ich auch nicht debuggen weil diese zu dem Zeitpunkt nichts tut.

Ich bin mir ganz sicher das auf die DLL nach dem freigeben NICHT mehr zugegriffen wird.


Habt ihr eine Idee bei diesem Merkwürdigen Problem? Liegt es vllt. an der libmysql?
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Fehler nach freigeben von DLL

  Alt 23. Apr 2007, 11:54
Gibst du die Queries wieder frei?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#3

Re: Fehler nach freigeben von DLL

  Alt 23. Apr 2007, 12:00
jo zuerst
mysql_real_query
dann hol ich mir die ganzen daten
und dann mysql_free_result
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#4

Re: Fehler nach freigeben von DLL

  Alt 24. Apr 2007, 19:02
*push*
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#5

Re: Fehler nach freigeben von DLL

  Alt 26. Apr 2007, 14:03
*push²*
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Fehler nach freigeben von DLL

  Alt 26. Apr 2007, 14:06
sieht für mich so aus als ob bei der Communikation mit deiner DLL der Speicher etwas "verwurschtelt" wird und dann kracht es später wenn versucht wird ordentlich frei zu geben (sozusagen ein Folgefehler). Aber ohne Quelltexte ist das nur Vermutung. Kommt der Fehler auch wenn du in deiner Datenbank.dll nicht auf mysql sachen zugreifst?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#7

Re: Fehler nach freigeben von DLL

  Alt 26. Apr 2007, 14:35
Zitat von SirThornberry:
Kommt der Fehler auch wenn du in deiner Datenbank.dll nicht auf mysql sachen zugreifst?
Ne ich muss eine mysql abfrage machen damit dann am schluß der fehler kommt

//edit: ich hab jetzt des auch getestet ob das handle und der proedure einsprungspunkt sich während des programmes geändert hat ... aber das handle und die porcedure adresse ist genau die gleiche wie am ende (wo des dann freigegeben wird) vom programm.
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
b1zZ

Registriert seit: 8. Aug 2005
Ort: Wischhafen
52 Beiträge
 
Delphi 2009 Enterprise
 
#8

Re: Fehler nach freigeben von DLL

  Alt 26. Apr 2007, 14:55
Hatte heute auch ein ähnliches Problem, bei mir war die Lösung, dass ich einfach vergessen hatte einen Memory Manager anzugeben.
Weiss nicht ob dich das jetzt weiter bringt.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: Fehler nach freigeben von DLL

  Alt 26. Apr 2007, 17:12
Wenn Du von der exe zur dll oder andersrum Strings weitergibst, dann musst du den sharemem einbinden in beide dpr-files. Wichtig ist, dass dies bei den uses an erster Stelle steht.

Oder Du verwendest nur ShortStrings (z.B. str[50]).

Siehe auch die verschiedenen DLL-Tutorials.
Mindestens eines findest Du hier in der DelphiPraxis.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#10

Re: Fehler nach freigeben von DLL

  Alt 26. Apr 2007, 17:23
Zitat von b1zZ:
Hatte heute auch ein ähnliches Problem, bei mir war die Lösung, dass ich einfach vergessen hatte einen Memory Manager anzugeben.
Weiss nicht ob dich das jetzt weiter bringt.
wie kann ich den einstellen? was macht des für einen unterschied?

Zitat von RavenIV:
Wenn Du von der exe zur dll oder andersrum Strings weitergibst, dann musst du den sharemem einbinden in beide dpr-files. Wichtig ist, dass dies bei den uses an erster Stelle steht.

Oder Du verwendest nur ShortStrings (z.B. str[50]).

Siehe auch die verschiedenen DLL-Tutorials.
Mindestens eines findest Du hier in der DelphiPraxis.
Ich weiß das man keine Strings verwenden sollte. Ich verwende auch ganz sicher keiner. hab sogar extra nochmal nachgeschaut
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 11:48 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