Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.049 Beiträge
 
Delphi 12 Athens
 
#8

AW: Daten von C# an Delphi senden

  Alt 2. Jul 2014, 23:37
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, ...)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat