ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
2727
2727
EMPFEHLEN
-
05.07.07 18:03 #1
Hallo zusammen,
hätte mal ne Frage zu nem aktuellen Projekt von mir. Ich schreibe ne Komponente die das OSCAR Protokoll das z.B von ICQ verwendet wird implementiert.
Die dabei verwendeten Datenpakete werden byteweise zusammengesetzt und dann verschickt.
Jetzt ist meine Frage, wie kann ich in Delphi Variablen (z.B Strings, Integers, Dates) in einen Buffer (array of Byte) schreiben?
hatte es bis jetzt so versucht:
Code delphi:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
type BytePacket = array of BYTE; function VarToBytePacket(Val : Variant ) : BytePacket; var ret : TMemoryStream; begin ret := TMemoryStream.Create(); if VarType(Val) and varTypeMask = varDouble then ret.Write(Val,Sizeof(Double)); else if VarType(Val) and varTypeMask = varInteger then ret.Write(Val,Sizeof(Integer)); //usw. für alle benötigten Typen. SetLength(Result,ret.Size); Move(ret.Memory,Result,ret.Size); ret.Free; end;
Das Problem ist nur, ich bekomme keine Compiler Fehler, aber nach dem ret.Free bekomme ich einen EAccessViolation Error.
Kann mir jemand sagen warum, bzw wie ich es anders machen könnte?
mfg,
KangaxxGeändert von Kangaxx (05.07.07 um 18:05 Uhr)
Ahh, the Internet! Where men are men, women are men and little girls are FBI agents.
-
16.07.07 21:31 #2
- Registriert seit
- Mar 2007
- Beiträge
- 95
Der Fehler resultiert daraus, daß Du versuchst auf einen Speicherbereich zuzugreifen der nicht existent ist.
Versuchs doch mal mit der Funktion TMemoryStream.read() Als Buffervariable benutzt Du dann Result. Ich bin mir allerdings nicht sicher ob dynamische Arrays als Funktiosergebnis funktionieren. Es ist vielleicht besser, wenn Du ein globales Array in Deinem Programm deklarierst.
Probier auch mal was passiert wenn Du die Move - Zeile auskommentierst. Wenn dann kein Fehler kommt, wir wohl hier was schief laufen.
Gruß Twinsetter
Ähnliche Themen
-
Variablen in Text schreiben...
Von GanjalDanjal im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 12.02.09, 07:01 -
Mit C# Buffer in struktur schreiben
Von xbu58 im Forum C/C++Antworten: 0Letzter Beitrag: 01.06.08, 11:52 -
Daten aus Variablen schreiben?
Von Neori im Forum PHPAntworten: 4Letzter Beitrag: 09.11.06, 19:48 -
Dateien byteweise lesen und schreiben -> UnauthorizedAccessException
Von Asterix-Ac im Forum .NET ArchivAntworten: 2Letzter Beitrag: 22.03.04, 22:42 -
In Buffer schreiben, aber an verschiedenen Stellen?
Von MixHeadroom im Forum JavaAntworten: 6Letzter Beitrag: 19.02.04, 10:07





Zitieren
Login





