C-Standardfunktionen
Die C-Standardlaufzeitbibliotheken 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 (Single-Byte Character Sets, 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 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 Doppelbyte-Zeichensätze (Double-Byte Character Sets, DBCSs), die mit den Buchstaben _ "mbs" beginnen.
Die C-Standardlaufzeitbibliotheken 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 _ UNICODE-Variable 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 aus dem zeichensatz, der von der C-Standardbibliothek unterstützt wird, mit einigen Einschränkungen in Unicode und zurück konvertieren. 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 die gleichen Formatspezifikationen wie die Strsafe.h-Druckfunktionen, z.B. StringCbPrintf. Auf ähnliche Weise definiert Tchar.h eine wprintf-Funktion, bei der die Formatzeichenfolge selbst eine Unicode-Zeichenfolge ist.
Achtung
Eine schlechte Pufferbehandlung ist in vielen Sicherheitsproblemen mit Pufferüberläufen zu sehen. Weitere Informationen finden Sie unter Strsafe.h Reference (Strsafe.h-Referenz). Die in Strsafe.h definierten Funktionen bieten zusätzliche Verarbeitung für die richtige Pufferbehandlung in Ihrem Code. Sie sollen ihre integrierten C/C++-Entsprechungen sowie spezifische Microsoft Windows ersetzen. Weitere Informationen finden Sie unter Sicherheitsüberlegungen: Internationale Features.