Einzelnen Beitrag anzeigen

Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#11

AW: Unicode und WideChar API-Funktionen

  Alt 11. Apr 2023, 23:18
{$mode delphiunicode} sollte dir dabei gut weiterhelfen das alles so bleiben kann.
Nein, das genügt nicht, siehe OP bzw. Beitrag #4. {$Mode DelphiUnicode} bzw. {$ModeSwitch UnicodeStrings} macht String zu UnicodeString, und (P)Char zu (P)WideChar. An den Imports der API-Funktionen ändert sich nichts, d.h. der Alias ExpandEnvironmentStrings verweist weiterhin auf ExpandEnvironmentStringsA statt ExpandEnvironmentStringsW.

Analog gilt das auch für die Klassen und Funktionen der Free Pascal RTL, wie man auch im von dir verlinkten Teil lesen kann. TIniFile und TFileStream kommen nach dem Umschalten nicht automatisch mit Unicode-Dateinamen bzw. -inhalten klar. Naja, vielleicht kommen sie schon damit klar (diese Frage ist ja weiterhin ungeklärt), aber es gibt beim Kompilieren Warnungen. Um die loszuwerden, muss man sich jeden einzelnen Aufruf anschauen und ändern, also eine andere Funktion rufen (z.B. UnicodeFormat statt Format), Casten oder Konvertierungsfunktion rufen. Das bedeutet, es kann eben nicht alles so bleiben.

Zitat:
oder ein anderer ansatz, {$modeswitch m_default_unicodestring}
Meintest du {$ModeSwitch UnicodeStrings} ?

Grüße
Dalai
  Mit Zitat antworten Zitat