Frage zu ReadFile() Methode (WIN32-API)

08/05/2011 - 18:26 von Heinz | Report spam
Guten Tag.

Ich habe foglendes Problem mit der ReadFile() Methode (WIN32-API)

Fall 1:
char rBuf[20] = {0};
DWORD dwBytesRead = 0;
ReadFile( hFile, rBuf, 2, &dwBytesRead, &ov )

Liest 2 Byte => OK

Fall 2:
char rBuf[20] = {0};
DWORD dwBytesRead = 0;
ReadFile( hFile, rBuf, 4, &dwBytesRead, &ov )

Sollte doch 4 Byte lesen => NOK (liest gar nichts in diesem Fall)


Frage:
Warum kann bei meiner Implmenetation die Methode ReadFile nur 2 Bytes lesen
und warum funktioniert das nicht mit 4 Bytes?
Ich möchte im Gesammten 16 Bytes auf einmal von der USB Schnittstelle lesen,
bei meiner Implementation ist aber nur immer 2 Byte möglich.

Hat jemand ein Tipp wie man das lösen kann/muss, bzw. kann es sein, dass die
ReadFile() Methode immer nur max. 2 Byte lesen kann (entsprechend mehrfach
aufgerufen wird)?

Vielen Dank
Heinz
 

Lesen sie die antworten

#1 sowhat
09/05/2011 - 17:50 | Warnen spam
Am 08.05.2011 18:26, schrieb Heinz:
Guten Tag.

Ich habe foglendes Problem mit der ReadFile() Methode (WIN32-API)

Fall 1:
char rBuf[20] = {0};
DWORD dwBytesRead = 0;
ReadFile( hFile, rBuf, 2,&dwBytesRead,&ov )

Liest 2 Byte => OK

Fall 2:
char rBuf[20] = {0};
DWORD dwBytesRead = 0;
ReadFile( hFile, rBuf, 4,&dwBytesRead,&ov )

Sollte doch 4 Byte lesen => NOK (liest gar nichts in diesem Fall)




was heisst das? ReadFile liefert False zurück..oder ..dwBytesRead ist
gleich 0.. oder Applikation stürzt ab???

Und was sagt GetLastError(), wenn ReadFile false zurückliefert...

Codebeispiele zu ReadFile findest du unter Examples auf

http://msdn.microsoft.com/en-us/lib...85%29.aspx


Auch, wie du das Lesen in einer Schleife erledigst,

http://msdn.microsoft.com/en-us/lib...85%29.aspx


Denke aber nicht, dass das das Problem ist...ReadFile liest ja gar nix,
wie du schreibst und nicht nur 2 Bytes..

Ähnliche fragen