Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
De flesta traditionella C- och C++-kod gör antaganden om tecken- och strängmanipulering som inte fungerar bra för internationella program. Även om både MFC och körningsbiblioteket stöder Unicode eller MBCS, återstår det fortfarande arbete för dig att göra. I det här avsnittet beskrivs innebörden av "internationell aktivering" i Visual C++:
Både Unicode och MBCS aktiveras med hjälp av portabla datatyper i MFC-funktionsparameterlistor och returtyper. Dessa typer definieras villkorligt på lämpliga sätt, beroende på om din version definierar symbolen
_UNICODEeller symbolen_MBCS(vilket innebär DBCS). Olika varianter av MFC-biblioteken länkas automatiskt till ditt program, beroende på vilken av dessa två symboler som bygget definierar.Klassbibliotekskod använder portabla körningsfunktioner och andra metoder för att säkerställa korrekt Unicode- eller MBCS-beteende.
Du måste fortfarande hantera vissa typer av internationaliseringsuppgifter i koden:
Använd samma bärbara körningsfunktioner som gör MFC portabelt i båda miljöerna.
Gör literalsträngar och tecken portabla i båda miljöerna med hjälp av makrot
_T. Mer information finns iGeneric-Text Mappningar i tchar.h.Vidta försiktighetsåtgärder när du parsar strängar under MBCS. Dessa försiktighetsåtgärder behövs inte under Unicode. Mer information finns i MBCS-programmeringstips.
Var försiktig om du blandar ANSI-tecken (8-bitars) och Unicode-tecken (16 bitar) i ditt program. Det går att använda ANSI-tecken i vissa delar av programmet och Unicode-tecken i andra, men du kan inte blanda dem i samma sträng.
Hårdkoda inte strängar i din applikation. Gör dem i stället till STRINGTABLE-resurser genom att lägga till dem i programmets .rc-fil. Programmet kan sedan lokaliseras utan att källkodsändringar eller omkompilering krävs. Mer information om STRINGTABLE-resurser finns i Strängredigeraren.
Anmärkning
Europeiska teckenuppsättningar och MBCS-teckenuppsättningar har vissa tecken, till exempel accentbeteckningar, med teckenkoder som är större än 0x80. Eftersom de flesta kod använder teckengnistrade tecken blir dessa tecken större än 0x80 teckengnistrade när de konverteras till int. Det här är ett problem för matrisindexering eftersom de sign-extended tecknen, som är negativa, indexerar utanför matrisen. Språk som använder MBCS, till exempel japanska, är också unika. Eftersom ett tecken kan bestå av 1 eller 2 byte bör du alltid ändra båda byteen samtidigt.