![]() |
Re: Fehler nach freigeben von DLL
Zitat:
|
Re: Fehler nach freigeben von DLL
Ja,
das ist eben verwunderlich. Probier doch mal das SetLength mit "grossem Wert" mal aus, dann hast du zumindestens ne Notlösung. Heiko |
Re: Fehler nach freigeben von DLL
ja mit dieser lösung funktioniert es zwar ... aber damit geb ich mich nicht zufrieden ...
ich hab jetzt außerdem endeckt des es egal ist ob ich die DLL freigebe und wieder lade und wieder freigeben ... Das Programm bringt nur den Fehler wenn: -In der DLL die Größe (mit SetLength) vom DatenArray verändert wird. -Die Dll irgendwann mal freigegeben wird. -Das Programm beendet wird (erst wenn der Ausführungspunkt hinter dem Appliacation.Run; ist tritt der Fehler auf) Wenn eins davon fehlt dann tritt der Fehler nicht auf :wall: :wall: :wall: |
Re: Fehler nach freigeben von DLL
Hallo,
was passiert, wenn du nach Benutzung der Daten ein SetLength(0) machst, also die Sache zurücksetzt ? Heiko |
Re: Fehler nach freigeben von DLL
Cool jetzt kommt der Fehler nicht mehr :-D
So jetzt ist nur noch die Frage warum Kann es daran liegen?:
Delphi-Quellcode:
//edit: aja des ist der Code in der DLL
MySQL_myRow := mysql_fetch_row(MySQL_myRes);
SetLength(DataArray^, mysql_num_fields(MySQL_myRes)); for I := 0 to Length(DataArray^)-1 do begin DataArray^[I] := MySQL_myRow[I]; //<-- hier end; |
Re: Fehler nach freigeben von DLL
Hallo,
nein *hoff* ;) Hast du den Coe mal mit memproof geprüft ? Es kann sein, dass das SetLength(0) ein mem leak erzeugt. Das SetLength in der DLL biegt bestimmt den Zeiger um (ReAlloc), das SetLength(0) sorgt dafür, dass ein Free nichts mehr machen muss. Ansonsten: Problem #12345 gelöst, weiter zu Problem #12346 ... ;) Heiko |
Re: Fehler nach freigeben von DLL
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz