Share via


MBCS-ondersteuning in Visual C++

Wanneer het wordt uitgevoerd op een MBCS-versie van Windows, is het Visual C++-ontwikkelsysteem (met inbegrip van de geïntegreerde broncode-editor, debugger en commandoregeltools) MBCS ingeschakeld, met uitzondering van het geheugenvenster.

Het geheugenvenster interpreteert geen bytes aan gegevens als MBCS-tekens, ook al kunnen ze worden geïnterpreteerd als ANSI- of Unicode-tekens. ANSI-tekens zijn altijd 1 byte groot en Unicode-tekens zijn 2 bytes groot. Met MBCS kunnen tekens 1 of 2 bytes groot zijn en de interpretatie ervan is afhankelijk van de codepagina die wordt gebruikt. Daarom is het moeilijk voor het geheugenvenster om MBCS-tekens betrouwbaar weer te geven. Het geheugenvenster kan niet weten welke byte het begin is van een teken. De ontwikkelaar kan de bytewaarden in het geheugenvenster bekijken en de waarde in tabellen opzoeken om de tekenweergave te bepalen. Dit is mogelijk omdat de ontwikkelaar het beginadres van een tekenreeks kent op basis van de broncode.

Visual C++ accepteert dubbel-bytetekens, waar dit ook nodig is. Dit omvat padnamen en bestandsnamen in dialoogvensters en tekstvermeldingen in de Visual C++-resourceeditor (bijvoorbeeld statische tekst in de dialoogvenstereditor en statische tekstvermeldingen in de pictogrameditor). Bovendien herkent de preprocessor enkele dubbel-byte-instructies, bijvoorbeeld bestandsnamen in #include instructies en als argumenten voor de code_seg en data_seg pragma's. In de broncode-editor worden dubbele bytetekens in opmerkingen en letterlijke tekenreeksen geaccepteerd, maar niet in C/C++-taalelementen (zoals namen van variabelen).

Ondersteuning voor de Input Method Editor (IME)

Toepassingen die zijn geschreven voor Oost-Aziatische markten die gebruikmaken van MBCS (bijvoorbeeld Japan) ondersteunen normaal gesproken de Windows IME voor het invoeren van zowel enkele- als dubbele bytetekens. De Visual C++-ontwikkelomgeving bevat volledige ondersteuning voor de IME.

Japanse toetsenborden ondersteunen Kanji-tekens niet rechtstreeks. De IME converteert een fonetische tekenreeks, ingevoerd in een van de andere Japanse alfabetten (Romaji, Katakana of Hiragana) in de mogelijke Kanji-representaties. Als er dubbelzinnigheid is, kunt u kiezen uit verschillende alternatieven. Wanneer u het beoogde Kanji-teken hebt geselecteerd, geeft de IME twee WM_CHAR berichten door aan de besturingstoepassing.

De IME, geactiveerd door de toetsencombinatie Alt+, wordt weergegeven als een set knoppen (een indicator) en een conversievenster. De toepassing plaatst het venster op de invoegpositie van de tekst. De toepassing moet WM_MOVE- en WM_SIZE-berichten verwerken door het conversievenster te verplaatsen zodat het overeenkomt met de nieuwe locatie of grootte van het doelvenster.

Als u wilt dat gebruikers van uw toepassing Kanji-tekens kunnen invoeren, moet de toepassing Windows IME-berichten verwerken. Zie Input Method Manager voor meer informatie over IME-programmering.

Visual C++ Foutopsporingsprogramma

Het foutopsporingsprogramma van Visual C++ biedt de mogelijkheid om onderbrekingspunten in IME-berichten in te stellen. Daarnaast kan het geheugenvenster dubbele bytetekens weergeven.

hulpprogramma's voor Command-Line

De opdrachtregelprogramma's van Visual C++, waaronder de compiler, NMAKE en de resourcecompiler (RC.EXE), zijn met MBCS ingeschakeld. U kunt de optie /c van de resourcecompilator gebruiken om de standaardcodepagina te wijzigen bij het compileren van de resources van uw toepassing.

Gebruik #pragma setlocale om de standaardlandinstelling te wijzigen tijdens het compileren van broncode.

Grafische hulpprogramma's

De Visual C++ Windows-hulpprogramma's, zoals Spy++ en de hulpprogramma's voor het bewerken van resources, bieden volledige ondersteuning voor IME-tekenreeksen.

Zie ook

Ondersteuning voor Multibyte Character Sets (MBCSs)
MBCS-programmeertips