(Moderator)
Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
Delphi 2007 Enterprise
|
Re: WM_COPYDATA & Array of Strings = Müll
28. Dez 2008, 18:54
Ich würde das ganze über einen Memorystream lösen.
Schreiben:
1. Länge des Strings als 4-Byte-Integer in den Stream schreiben
2. Den Inhalt des Strings
3. In die Copydata-Struktur die Länge des Streams (Stream.Size) sowie die Adresse (Stream.Memory)
4. WM_COPYDATA-Message verschicken
Lesen:
1. MemoryStream instanitiieren und Zeiger zuweisen
2. 4-Byte Integer lesen und einen String mit SetLength (String, Länge) alloziieren
3. <Länge> Bytes aus dem Stream in den String lesen
4. Freuen, das es so einfach ist
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
|