Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: AV bei umwandlung PAnsiChar nach C#

  Alt 2. Jun 2016, 12:18
Zitat:
WideString(EinPAnsiChar)
Bei derartigen Casts sollte man immer aufpassen.

Wird da nur stumpf der "Pointer"/Typ gecastet, oder war der Compiler so schlau eine Funktion für den Cast den Daten-Inhalts einzubauen.

Ausgehend von "normalen" String-Typen (vorallem die LongStrings und der ShortString), macht das der Compiler immer, aber bei "Pointern" als Quelle nicht immer.
Bei PAnsiChar<>PWideChar kann er es auch garnicht machen und wirft da nur eine Warnung.
Und bei Pointer <-> Ansi/Wide/UnicodeString wird der Typ nur blind gecastet, ohne den Inhalt anzupassen, den der Compiler den Daten-Typ eh nicht kennt.

Nur bei LongStrings (AnsiString, UnicodeString) und WideString zum passenden PChar-Typen braucht der Inhalt nicht konvertiert zu werden.
Tut Delphi aber dennoch, aber nur bezüglich der Leer-Strings, wo auf eine Dummy-Stringkonstante mit dem Inhalt #0#0 umgeleitet wird.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 2. Jun 2016 um 12:23 Uhr)
  Mit Zitat antworten Zitat