C-standardfunktioner

Standard-C-körningsbiblioteken innehåller både Unicode UTF-16-versioner (breda tecken) av strängfunktioner som kan användas med Unicode- och byteorienterade versioner av strängfunktioner som kan användas med tecken från teckenuppsättningar med en byte (SBCS). Unicode-datatypen WCHAR är kompatibel med datatypen wchar_t i ANSI C och ger åtkomst till Unicode-strängfunktionerna. Unicode-versionerna av funktionerna börjar med bokstäverna "wcs" (eller ibland "_wcs"). Datatypen CHAR som används för kodsidor är kompatibel med teckendatatypen char i ANSI C för att tillåta åtkomst till teckensträngsfunktionerna. Funktionernas teckenversioner börjar med bokstäverna "str". Det finns också specialversioner för teckenuppsättningar med dubbla byte (DBCS) som börjar med bokstäverna "_mbs".

Standard C-körningsbiblioteken innehåller allmänna funktioner för alla C-standardsträngsfunktioner. De börjar med "_tcs" och visas i Tchar.h-huvudfilen. Dessa funktioner använder den allmänna TCHAR-datatypen.

Ett program måste lägga till följande rader för att använda de allmänna funktionerna och kompilera för Unicode.

#define _UNICODE

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

Observera att både filerna Tchar.h och Wchar.h krävs och att det inledande understrecket för _UNICODE variabeln också krävs. Den här nomenklaturen är specifik för C-standardbiblioteket. "UNICODE" som återges utan understrecket är för Microsoft Windows-körningarna.

Funktionerna wcstombs och mbstowcs kan konvertera från teckenuppsättningen som stöds av standard-C-biblioteket till Unicode och tillbaka, med vissa begränsningar. Mer information om hur du översätter strängar till och från Unicode finns i Översättning mellan strängtyper.

Funktionen printf som definierats i Tchar.h stöder samma formatspecifikationer som utskriftsfunktionerna Strsafe.h, till exempel StringCbPrintf. På samma sätt definierar Tchar.h en wprintf- funktion, där själva formatsträngen är en Unicode-sträng.

Försiktighet

Dålig bufferthantering är inblandad i många säkerhetsproblem som omfattar buffertöverskridanden. Se Strsafe.h-referens. Funktionerna som definieras i Strsafe.h ger ytterligare bearbetning för korrekt bufferthantering i koden. De är avsedda att ersätta sina inbyggda C/C++-motsvarigheter samt specifika Microsoft Windows-implementeringar. Mer information finns i säkerhetsöverväganden: Internationella funktioner.

 

Unicode i Windows API-