Freigeben über


Standard-C-Funktionen

Die Standardmäßigen C-Laufzeitbibliotheken enthalten sowohl Unicode UTF-16-Versionen (Breitzeichen) von Zeichenfolgenfunktionen, die mit Unicode- und byteorientierten Versionen von Zeichenfolgenfunktionen verwendet werden können, die mit Zeichen aus Single-Byte-Zeichensätzen (SBCSs) verwendet werden können. Der Unicode-Datentyp WCHAR ist mit dem Datentyp wchar_t in ANSI C kompatibel und ermöglicht den Zugriff auf die Unicode-Zeichenfolgenfunktionen. Die Unicode-Versionen der Funktionen beginnen mit den Buchstaben "wcs" (oder manchmal "_wcs"). Der für Codeseiten verwendete Datentyp CHAR ist mit dem Zeichendatentypzeichen in ANSI C kompatibel, um den Zugriff auf die Zeichenzeichenfolgenfunktionen zu ermöglichen. Die Zeichenversionen der Funktionen beginnen mit den Buchstaben "str". Es gibt auch spezielle Versionen für Doppelbyte-Zeichensätze (DBCSs), die mit den Buchstaben "_mbs" beginnen.

Die Standardmäßigen C-Laufzeitbibliotheken enthalten generische Funktionen für alle standardmäßigen C-Zeichenfolgenfunktionen. Sie beginnen mit "_tcs" und werden in der Headerdatei "Tchar.h" aufgeführt. Diese Funktionen verwenden den generischen TCHAR-Datentyp.

Eine Anwendung muss die folgenden Zeilen hinzufügen, um die generischen Funktionen zu verwenden und für Unicode zu kompilieren.

#define _UNICODE

#include <tchar.h>
#include <wchar.h>

Beachten Sie, dass sowohl die Dateien "Tchar.h" als auch "Wchar.h" erforderlich sind und dass auch der führende Unterstrich für die variable _UNICODE erforderlich ist. Diese Nomenklatur ist spezifisch für die Standard-C-Bibliothek. "UNICODE" ohne Unterstrich wird für die Microsoft Windows-Runtimes gerendert.

Die wcstombs und mbstowcs Funktionen können aus dem zeichensatz konvertiert werden, der von der Standardmäßigen C-Bibliothek unterstützt wird, in Unicode und zurück, mit einigen Einschränkungen. Weitere Informationen zum Übersetzen von Zeichenfolgen in und aus Unicode finden Sie unter Translation Between String Types.

Die in Tchar.h definierte printf-Funktion unterstützt die gleichen Formatspezifikationen wie die Strsafe.h-Druckfunktionen, z. B. StringCbPrintf. Ebenso definiert Tchar.h eine wprintf--Funktion, in der die Formatzeichenfolge selbst eine Unicode-Zeichenfolge ist.

Vorsicht

Eine schlechte Pufferbehandlung ist in vielen Sicherheitsproblemen mit Pufferüberläufen verbunden. Siehe Strsafe.h Reference. Die in Strsafe.h definierten Funktionen bieten zusätzliche Verarbeitung für die ordnungsgemäße Pufferverarbeitung in Ihrem Code. Sie sollen ihre integrierten C/C++-Entsprechungen sowie bestimmte Microsoft Windows-Implementierungen ersetzen. Weitere Informationen finden Sie unter Sicherheitsüberlegungen: Internationale Features.

 

Unicode in der Windows-API