Dela via


MBCS-stöd i Visual C++

När det körs på en MBCS-aktiverad version av Windows är Visual C++-utvecklingssystemet (inklusive det integrerade källkodsredigeraren, felsökningsprogrammet och kommandoradsverktygen) MBCS-aktiverat, med undantag för minnesfönstret.

Minnesfönstret tolkar inte byte av data som MBCS-tecken, även om det kan tolka dem som ANSI- eller Unicode-tecken. ANSI-tecken är alltid 1 byte i storlek och Unicode-tecken är 2 byte stora. Med MBCS kan tecken vara 1 eller 2 byte i storlek och deras tolkning beror på vilken kodsida som används. Därför är det svårt för minnesfönstret att på ett tillförlitligt sätt visa MBCS-tecken. Minnesfönstret kan inte veta vilken byte som är början på ett tecken. Utvecklaren kan visa bytevärdena i minnesfönstret och leta upp värdet i tabeller för att fastställa teckenrepresentationen. Detta är möjligt eftersom utvecklaren känner till startadressen för en sträng baserat på källkoden.

Visual C++ accepterar tecken med dubbla byte där det är lämpligt att göra det. Detta inkluderar sökvägsnamn och filnamn i dialogrutor och textposter i Visual C++-resursredigeraren (till exempel statisk text i dialogredigeraren och statiska textposter i ikonredigeraren). Dessutom känner preprocessorn igen vissa dubbelbyte-direktiv , till exempel filnamn i #include -instruktioner och som argument till code_seg och data_seg pragmas. I källkodsredigeraren godkänns tecken med dubbla byte i kommentarer och strängliteraler, men inte i C/C++-språkelement (till exempel variabelnamn).

Stöd för Indatametodredigeraren (IME)

Program som är skrivna för östasiatiska marknader som använder MBCS (till exempel Japan) stöder normalt Windows IME för att ange både enkel- och dubbelbytetecken. Visual C++-utvecklingsmiljön innehåller fullständigt stöd för IME.

Japanska tangentbord stöder inte kanji-tecken direkt. IME konverterar en fonetisk sträng som anges i ett av de andra japanska alfabeten (Romaji, Katakana eller Hiragana) till dess möjliga Kanji-representationer. Om det finns tvetydighet kan du välja bland flera alternativ. När du har valt det avsedda Kanji-tecknet skickar IME två WM_CHAR meddelanden till det kontrollerande programmet.

IME, som aktiveras av alt+-tangentkombinationen, visas som en uppsättning knappar (en indikator) och ett konverteringsfönster. Programmet placerar fönstret vid textinfogningspunkten. Programmet måste hantera WM_MOVE och WM_SIZE meddelanden genom att flytta konverteringsfönstret så att det överensstämmer med målfönstrets nya plats eller storlek.

Om du vill att användarna av programmet ska kunna ange Kanji-tecken måste programmet hantera Windows IME-meddelanden. Mer information om IME-programmering finns i Input Method Manager.

Visual C++ Felsökningsprogram

Visual C++-felsökningsprogrammet ger möjlighet att ange brytpunkter för IME-meddelanden. Dessutom kan Minne-fönstret visa dubbla byte-tecken.

Kommandoradsverktyg

Kommandoradsverktygen Visual C++, inklusive kompilatorn, NMAKE och resurskompilatorn (RC.EXE), är MBCS-aktiverade. Du kan använda resurskompilatorns /c-alternativ för att ändra standardkodsidan när du kompilerar programmets resurser.

Om du vill ändra standardlokalen vid källkodens kompileringstid, använd #pragma setlocale.

Grafiska verktyg

Visual C++ Windows-baserade verktyg, till exempel Spy++ och verktygen för resursredigering, har fullt stöd för IME-strängar.

Se även

Stöd för MBCS (Multibyte Character Sets)
MBCS-programmeringstips