ReadFile liest nicht mehr als 668 bytes (998 - ERROR_NOACCESS)
-
Ich möchte eine Textur mit einem sehr simplen Format aus einer Datei lesen.
Das öffnen dieser Datei mitHANDLE f = CreateFile(file, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
funktioniert. Dann lese ich 2x4 bytes für die Breite und Höhe aus. Mit
unsigned char* rgbadata = (unsigned char*)malloc(size.cx * size.cy * 4);
Reserviere ich ein Array für die Texturdaten. Als nächstes lese ich per
DWORD read; ReadFile(f, &rgbadata, size.cx * size.cy * 4, &read, NULL);
die Daten ein. Allerdings wird solange die Anzahl der Bytes die gelesen werden soll über 668 Bytes liegt nichts gelesen und GetLastError gibt 998 (ERROR_NOACCESS) zurück.
Jemand eine Idee, wieso das so ist und/oder wie ich das umgehen kann?
-
Du sollst einen Zeiger auf Deinen Lese-Puffer im zweiten Parameter übergeben. Du übergibst aber einen Zeiger auf den Zeiger auf den Lese-Puffer. Probiere es mal so:
DWORD read; ReadFile(f, rgbadata, size.cx * size.cy * 4, &read, NULL);
-
lol
Wie ein Zeichen ein ganzes Programm kaputtmacht, und den Programmierer stundenlang suchen und verzweifeln lässt.
Danke x1000
-
Kann geschlossen werden
-
openglfreak schrieb:
lol
Wie ein Zeichen ein ganzes Programm kaputtmacht, und den Programmierer stundenlang suchen und verzweifeln lässt.
Danke x1000Du solltest auf die Warnungen deines Compilers achten!
-
Der Compiler (MinGW-w64 gcc) hat mir keine Warnung ausgegeben
-
openglfreak schrieb:
Der Compiler (MinGW-w64 gcc) hat mir keine Warnung ausgegeben
Auch nicht mit
-Wall -Wextra
?