Ist dieses
public string Message;
eigentlich ein CharArray (ala ShortString), oder ist das ein Pointer/Objekt?
Außerdem ist das im C# gaantiert kein ShortString, denn als alter Pascal-Typ ist der ShortString intern so aufgebaut:
Delphi-Quellcode:
type
String[X] = packed record
Length: Byte;
Chars: array[1..X] of AnsiChar;
end;
ShortString = String[255];
bzw. eigentlich
Delphi-Quellcode:
type
String[X]: array[0..X] of AnsiChar;
Wobei die Position 0 das Längen-Byte ist, weswegen Pascal-Strings auch mit 1 beginnen/begannen.
LongString's (String, AnsiString/UTF8String/RawByteString und UnicodeString) sind dagegen nochmal anders aufgebaut ... die sind praktisch ein aufgemotztes dynamisches Char-Array.
Und der WideString ist nochmal was Anderes. (Kapselung einer
WinAPI)
Und zusätlich kann man alle Zeigertypen für Strings beim WM_COPYDATA vergessen.
Wobei es hier bestimmt bessere Varianten der
IPC geben würde, welche auf beiden Seiten nativ unterstützt werden. (Pipes, Sockets, MMFs, ...)