Anzeigen: Object Pascal C++
Anzeigeeinstellungen

C++-Anwendungen für Unicode anpassen

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu Unicode für C++ - Index


Weil der Standard-String Unicode ist, sollte der C++-Code, der die VCL verwendet, Unicode-sensitiv sein. Mit der Option _TCHAR-Zuordnung des Dialogfelds Projekt > Optionen > C++ (Gemeinsame Optionen) können Sie sicherstellen, dass Ihr Code sowohl "Narrow"- als auch "Wide"-Strings korrekt verarbeitet.

Hinweis: Neue C++-Anwendungen (einschließlich C++-Konsolenanwendungen), die die VCL verwenden, setzen jetzt automatisch die Option _TCHAR-Zuordnung auf wchar_t und enthalten einen _tmain(...)-Eintrittspunkt, der in main übergeht. C++-Anwendungen, bei dennen die Option _TCHAR-Zuordnung automatisch gesetzt ist, verwenden die korrekten Floating-Funktionen.

Unicode-bezogene Fragen für C++

In C++ gibt es eine Reihe mit Unicode zusammenhängende Fragen, die für Object Pascal-Anwender nicht relevant sind. Diese Fragen ergeben sich aus der Tatsache, dass die C++-RTL und die Windows-API standardmäßig "narrow" sind, die VCL aber jetzt "wide" ist. Einige dieser Fragen werden im Folgenden behandelt.

Verwenden der VCL und der C++-RTL

Die VCL ist "wide" (verwendet Unicode), die C++-RTL ist dagegen standardmäßig "narrow", enthält aber Routinen sowohl für "wide"- als auch für "narrow"-Strings (siehe Floating-Funktionen). In Anwendungen, die die VCL verwenden, müssen Sie daher die "wide"-Versionen der RTL-Funktionen einsetzen. Um die C++-RTL in einer VCL-Anwendung (oder einer beliebigen Anwendung, für die "wide"-Strings erforderlich sind) zu verwenden, müssen Sie Folgendes ausführen:

  • Setzen Sie _TCHAR-Zuordnung auf wchar_t, und verwenden Sie _TCHAR in Ihrem Quellcode.
  • Verwenden Sie die "Floating"-Version der RTL-Member, wie z.B. _tcscpy anstatt strcpy. Siehe die Liste der Floating-Funktionen.

Verwenden der Windows-API

Die Windows-API ist normalerweise per Vorgabe "narrow". Die _TCHAR-Zuordnungsoption ist hier außerordentlich hilfreich, aber die Option ist für C++-Anwendungen, die die VCL nicht verwenden, per Vorgabe auf char gesetzt.

Zur Verwendung der Windows-API in einer C++-Anwendung, die die VCL nicht verwendet, müssen Sie die Option _TCHAR entspricht im Dialogfeld Projekt > Optionen > C++ (Gemeinsame Optionen) explizit auf wchar_t setzen.

Übergeben von String-Konstanten

String-Konstanten, wie z.B. "string constant", sind weiterhin "narrow" (char*), daher können sie nicht wie früher an VCL-Funktionen übergeben werden, die PChar übernehmen. Sie können die Konstante an VCL-Funktionen mit einem PChar-Parameter übergeben, wenn Sie der Konstante ein L voranstellen, wie in:

L"string constant"

Diese Umwandlung wird automatisch ausgeführt, wenn Sie die _TCHAR-Zuordnung auf wchar_t setzen und die Makros _TEXT oder _T, wie unter _TCHAR-Zuordnung beschrieben, verwenden.

Festlegen der Codeseite

Mit AnsiStringT<Codeseite> können Sie die Codeseite für AnsiString-Typen festlegen.

Es sind dieselben vordefinierten Typen vorhanden, die auch Object Pascal zur Verfügung stellt:

Hinweis: Die UTF8-Codierung kann festgelegt werden, indem unter Verwendung der UTF8-Codeseite die Strings zwischen den API-RTL- und VCL-Aufrufen umgewandelt werden. Siehe UTF-8-Konvertierungsroutinen.

Siehe auch

Meine Werkzeuge
In anderen Sprachen