Einzelnen Beitrag anzeigen

Robert Marquardt
(Gast)

n/a Beiträge
 
#4

Re: Zugriffsverletzung bei(Kommunikations)Timeout mit overla

  Alt 1. Okt 2007, 17:36
LPOVERLAPPED ist in C ein "OVERLAPPED *", also ein Zeiger auf ein OVERLAPPED-Record. In Delphi gibt es OVERLAPPED als TOverlapped bereits. LPOVERLAPPED waere dann "type LPOVERLAPPED = ^TOverlapped;". Damit hast du nie ein Record deklariert und die Variable Overlapped ist ein uninitialisierter Zeiger und zeigt in den Wald. Natuerlich bekommst du damit eine Schutzverletzung.

Das mit dem warten ob etwas gelesen wurde, sollte sich realisieren lassen. SleepEx sollte genuegen. Es muss allerdings danach das UsbBulkRead (vermutlich mit CancelIo) abgebrochen werden, falls SleepEx den Timeout signalisiert. Korrektur: WaitForSingleObject.
Besser ist allerdings du schreibst einen Thread der das handhabt. Noch besser du findest jemanden der mit solchen Sachen vertraut ist. Ich bin es, aber ich habe keine Zeit.
  Mit Zitat antworten Zitat