Einzelnen Beitrag anzeigen

Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#1

Problem mit WriteFile für die COM-Schnittstelle

  Alt 31. Mai 2006, 08:01
Hi DPler

Ich hab ein Problem mit WriteFile für die COM-Schnittstelle
Ich verwende für die COM Schnittstelle die Unit UCOM (nicht die Komponente)

Jetzt hab ich mir eine Prozedur geschrieben die vier Byte nacheinander sendet und beim vierten Byte gibt es einen access fehler (schreiben auf adresse: zugriff verweigert)

Delphi-Quellcode:
procedure TCOMThread.SendData(Speicherpos : integer; Data : Char);
const
  cSleepTime = 10;
var
  DPTR, DPH, DPL : String;
  Command : String;
  TempChar : PChar;
begin
  DPTR := IntToBin(Speicherpos, 16);
  DPH := copy(DPTR, 1, 8);
  DPL := copy(DPTR, 9, 8);
  COMPort.SendString(#64);
  sleep(cSleepTime);
  COMPort.SendString(PChar(IntToStr(BinToInt(DPH))));
  sleep(cSleepTime);
  COMPort.SendString(PChar(IntToStr(BinToInt(DPL))));
  sleep(cSleepTime);
  TempChar := PChar(Data);
  COMPort.SendString(TempChar); //<--- Hier kommt die Fehlermeldung
end;
Die Unit:
Delphi-Quellcode:
procedure TCOM.SendString(const Buffer: PChar);
var BytesWritten: DWord;
begin
  WriteFile(PortHandle, Buffer^ ,Length(Buffer) ,BytesWritten ,NIL);
  Inc(COMThread.ComSendedBytes);
end;
Der Aufruf der Prozedure:
SendData(AktSpeicherPos, DataField[Y, X]); Konnt ihr mir helfen?
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat