![]() |
TMemoryStream.Read - Crash ohne Kommentar!
Diese Zeile bereitet mir gerade Kopfschmerzen, da crasht das Programm immer ohne Fehlermeldung (ohne Debugger):
Delphi-Quellcode:
Fil ist ein string.
Stream1.Read(Fil, Stream1.Size);
Mit Debugger krieg ich folgende Meldung: Project C:\Dokumente und Einstellungen\SnuffMaster23\Eigene Dateien\Eigene Programme\Tool\Project1.exe faulted with message: 'access violation at 0x7c9478ae: write of address Ox00030ffc'. Process Stopped. Use Step or Run to continue. In dem Stream stecken 11,4 MB, aber das dürfte der String ja leicht packen. |
Re: TMemoryStream.Read - Crash ohne Kommentar!
Das gibt natuerlich ein heftiges Problem, da der string wahrscheinlich nicht lang genug ist um das ganze File aufzunehmen.
Vorher ein SetLength(Fil, Stream1.Size) machen und es muss Stream1.Read(PChar(Fil)^, Stream1.Size); heissen. |
Re: TMemoryStream.Read - Crash ohne Kommentar!
SetSize hatt ich auch schon davor, hat (allein) nichts gebracht.
Mit dem dereferenzierten Zeiger krieg ich jetzt ne ganz normale Zugriffsverletzung. :( //Zugriffsverletzung kommt weiter unten :oops: Da sollte ich wahrscheinlich auch die Zeigervariente nehmen. Danke!! |
Re: TMemoryStream.Read - Crash ohne Kommentar!
Delphi-Quellcode:
Stream1.Read(Fil, Stream1.Size); // FALSCH !!
//Richtig SetLength(Fil, Stream1.Size); // genügend Speicher reservieren Stream1.Read(Fil[1], Stream1.Size); |
Re: TMemoryStream.Read - Crash ohne Kommentar!
Is der Stream auch mit Create erstellt worden? :>
|
Re: TMemoryStream.Read - Crash ohne Kommentar!
Jo isser.
Es funzt mittlerweile mit der Lösung von Robert. Sorry, hätt ich deutlicher schreiben sollen^^ |
Re: TMemoryStream.Read - Crash ohne Kommentar!
PChar(Fil)^, PChar(Fil)[0] und Fil[1] sind synonym. Man muss sich nur klarmachen wie Delphi das handhabt.
|
Re: TMemoryStream.Read - Crash ohne Kommentar!
... aber Fil allein, klappt bei einem solchen Aufruf grundsätzlich nicht (wenn Fil Ansi/WideString ist)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 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