readFile() blocierend machen??
-
Hallo,
kann mir jemand erklären wie ich die Funktion readFile() blockierend machen kann?
Ich lese mit ihr Strings von COM1 und sie sieht bei mir in Moment so aus:
OVERLAPPED osRead = {0}; bResult = ReadFile(hPipe, &str_buffer, dwToRead, &dwRead, &osRead);Danke in Voraus!
-
Ganz einfach - stell' das File um auf nicht-OVERLAPPED, dann kehrt ReadFile() erst zurück, wenn es fertig ist mit Lesen. Alternativ kannst du auch mit
WaitForSingleObject(osRead.hEvent,INFINITE);warten, bis ReadFile fertig ist mit seiner Arbeit.
-
Danke, das hat geklappt!
Könnte eigendlich auch selber darauf kommen...
aber trotzdem danke.Hier nochmal die Änderung:
hPipe = CreateFile( lpszPipename, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, //war zuerst FILE_FLAG_OVERLAPPED, NULL);