ReadFile() nur mit Heap-Speicher ?
-
Ich will ein File in Speicher einlesen. Das funktioniert wenn ich den Speicher
vom Heap mit der Funktion HeapAlloc() allokiere. Wenn ich virtuellen Speicher über die Funktion VirtualAlloc() allokiere , liefert die Funktion ReadFil() den Wert 0.
-
Zeig doch mal etwas mehr Code.
Normalerweise ist es der Funktion ReadFile() egal, woher sie ihren Speicher bekommt - wichtig ist nur, daß du ihr genug Platz zur Verfügung stellst.
Edit: Übrigens werden Doppel-Postings gar nicht gerne gesehen
-
PointerAllocPuff=VirtualAlloc(NULL,FileInLaenge+5,
MEM_COMMIT,PAGE_READWRITE);
if (PointerAllocPuff==0) // kein Speicher am HEAP
{
Meldung1->Caption ="Zu wenig virtuellen Speicher";
goto Fehler;
}
FileLesenStatus=ReadFile(InDateiHandle,(char*) PointerAllocPuff,
FileInLaenge,&AnzahlGelesenenByte,0);
if (FileLesenStatus==0)
{
Meldung1->Caption ="Fehler beim Dateilesen";
goto Fehler;
}
-
Das was...
-
Eine Möglichkeit wäre es, den Fehler mit GetLastError() genauer einzugrenzen (falls dir die Fehlernummer nichts sagt - FormatMessage() kann sie dir erklären).
PS: sfds
PPS:
skorpionx schrieb:
Das was...
Was soll dieser Beitrag aussagen?
-
Die FehlerMeldung war:
„Unzulässiger Zugriff auf einen Speicherbereich“Nur warum ist dieser Zugriff unzulässig?
-
mea culpa, mea culpa, mea maxima culpa:
Ich wollte eine Änderung einführen. Die Grösse vom Speicher habe ich dabei falsch
eingeschätzt...