Share via


Standard-C-Funktionen

Die Standard-C-Runtimebibliotheken enthalten sowohl Unicode UTF-16-Versionen (Wide Character) von Zeichenfolgenfunktionen, die mit Unicode verwendet werden können, als auch byteorientierte Versionen von Zeichenfolgenfunktionen, die mit Zeichensätzen aus Einzelbytezeichensätzen (SBCSs) verwendet werden können. Der Unicode-Datentyp WCHAR ist mit dem Datentyp kompatibel, der in ANSI C wchar_t, 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 Codepages verwendete Datentyp CHAR ist mit dem Zeichendatentyp char in ANSI C kompatibel, um den Zugriff auf die Zeichenfolgenfunktionen zu ermöglichen. Die Zeichenversionen der Funktionen beginnen mit den Buchstaben "str". Es gibt auch spezielle Versionen für Double-Byte-Zeichensätze (DBCSs), die mit den Buchstaben "_mbs" beginnen.

Die Standard-C-Runtimebibliotheken enthalten generische Funktionen für alle Standardmäßigen C-Zeichenfolgenfunktionen. Sie beginnen mit "_tcs" und werden in der Tchar.h-Headerdatei 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 C-Standardbibliothek. "UNICODE", das ohne unterstrich gerendert wird, ist für die Microsoft Windows-Runtimes.

Die Funktionen wcstombs und mbstowcs können mit einigen Einschränkungen aus dem zeichensatz konvertieren, der von der C-Standardbibliothek unterstützt wird, in Unicode und zurück. Weitere Informationen zum Übersetzen von Zeichenfolgen in und aus Unicode finden Sie unter Übersetzung zwischen Zeichenfolgentypen.

Die in Tchar.h definierte printf-Funktion unterstützt dieselben Formatspezifikationen wie die Strsafe.h-Druckfunktionen, z. B. StringCbPrintf. In ähnlicher Weise definiert Tchar.h eine wprintf-Funktion , bei der die Formatzeichenfolge selbst eine Unicode-Zeichenfolge ist.

Achtung

Eine schlechte Pufferbehandlung ist mit vielen Sicherheitsproblemen verbunden, die Pufferüberläufe umfassen. Weitere Informationen finden Sie unter Strsafe.h-Referenz. 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