Hallo Leute,
ich versuche in Delphi 4 einen Code zu erstellen, wo Daten plattformunabhängig ausgetauscht werden können.
Mit der Funktion htons habe ich keine Probleme, aber htonl bringt regelmäßig eine Meldung, dass eine Bereichsüberschreitung stattgefunden hat, obwohl es nicht so ist.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TfrmMain.Button2Click(Sender: TObject); Var XI:LongWord; YI: LongInt; begin YI := -952065; ShowMessage(IntToStr(YI)); ShowMessage(IntToStr(LongWord(YI))); XI:= htonl(LongWord(YI)); end; |
Bei der letzten Zeile knallt es immer. Ich habe YI auch schon als Integer und XI als Cardinal definiert. Hat aber alles nichts gebracht. Auch wenn ich das Casting in eine unsigned Zahl unterlassse, bekomme ich dieselben Effekte. Was mache ich falsch?
Kann mir jemand helfen?
Vielen Dank für Eure Unterstützung Julia
Moderiert von
Narses: Delphi-Tags hinzugefügt