Einzelnen Beitrag anzeigen

Robert Marquardt
(Gast)

n/a Beiträge
 
#2

Re: Zugriffsverletzung bei(Kommunikations)Timeout mit overla

  Alt 1. Okt 2007, 11:26
Das ist die uebliche Verwechslung von Pointer auf Struktur und Struktur.

Delphi-Quellcode:
procedure InitOverlapped(var Overlapped: TOverlapped);
begin
  Overlapped.Offset := 0;
  Overlapped.OffsetHigh := 0;
  Overlapped.Internal := 0;
  Overlapped.InternalHigh := 0;
  Overlapped.hEvent := CreateEvent(nil,True,False,'');
end;
Der Eventname ist verdaechtig ein anonymer Event verwendet nil statt ''.
Ist ein ManualReset-Event noetig?

Hier setzt sich der Fehler fort.
Delphi-Quellcode:
function ReceiveCommand(...):..
var
  ...
  Overlapped: TOverlapped;
begin
  InitOverlapped(Overlapped);
  Ret := UsbBulkRead(deviceHandle, 0, 0, 0, @USBcb, 8, BytesReceived, @Overlapped);
Wird denn nach UsbBulkRead auf den Event gewartet? Wenn nicht wird die Funktion verlassen und Overlapped wird zerstoert. Es muss sichergestellt werden das Overlapped solange existiert bis UsbBulkRead den Event nicht mehr triggert.
  Mit Zitat antworten Zitat