Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: PAnsiChar und PWidechar

  Alt 15. Mai 2015, 17:00
Wenn inet_addr einen PAnsiChar haben will, dann mußt du ihm das auch geben.
AnsiString + PAnsiChar

Bei direkter Übergabe von Konstanten ala '127.0.0.1' nimmt Delphi automatisch eine Konvertierung vor, also bei PWideChar wird der String als Unicode übergeben und bei PAnsiChar als ANSI.


Man kann maximal noch nachsehen, ob inet_addr immer nur PAnsiChar haben will, oder ob es davon auch eine Unicode-Version gibt ... Genaueres immer siehe Definition im MSDN.



PS: Du hast in der Enterprise absichtlich die Quellcodes dabei, somit kann man also immer nachsehn, was die Funktion wirklich haben will,
denn im Code-Insight kann man nicht zwischen PChar und PWideChar (seit Delphi 2009) oder PChar und PAnsiChar (bis Delphi 2007) unterscheiden.

PChar ist ein compilerabhängiger Typ Alias für PWideChar oder PAnsiChar.
Und bei alten oder schrottigen aktuellen Codes muß man immer beachten, daß viele Programmierer nicht auf den korrekten Typen achten und z.B. PChar benutzt haben, obwohl es eigentlich explizit PAnsiChar hätte sein sollen, was dann seit D2009 probleme bereitet.
$2B or not $2B

Geändert von himitsu (15. Mai 2015 um 17:04 Uhr)
  Mit Zitat antworten Zitat