Udostępnij za pośrednictwem


Obsługa MBCS w programie Visual C++

Po uruchomieniu w wersji systemu Windows z obsługą mbCS system programowania Visual C++ (w tym zintegrowany edytor kodu źródłowego, debuger i narzędzia wiersza polecenia) jest włączony MBCS, z wyjątkiem okna pamięci.

Okno pamięci nie interpretuje bajtów danych jako znaków MBCS, mimo że może je interpretować jako znaki ANSI lub Unicode. Znaki ANSI mają zawsze rozmiar 1 bajtów, a znaki Unicode mają rozmiar 2 bajty. W przypadku MBCS znaki mogą mieć rozmiar 1 lub 2 bajty, a ich interpretacja zależy od tego, która strona kodowa jest używana. W związku z tym okno pamięci jest trudne do niezawodnego wyświetlania znaków MBCS. Okno pamięci nie może wiedzieć, który bajt jest początkiem znaku. Deweloper może wyświetlić wartości bajtów w oknie pamięci i wyszukać wartość w tabelach, aby określić reprezentację znaku. Jest to możliwe, ponieważ deweloper zna początkowy adres ciągu na podstawie kodu źródłowego.

Język Visual C++ akceptuje znaki dwubajtowe wszędzie tam, gdzie jest to konieczne. Obejmuje to nazwy ścieżek i nazwy plików w oknach dialogowych oraz wpisy tekstowe w edytorze zasobów visual C++ (na przykład tekst statyczny w edytorze okien dialogowych i statyczne wpisy tekstowe w edytorze ikon). Ponadto preprocesor rozpoznaje niektóre dyrektywy dwubajtowe — na przykład nazwy plików w #include instrukcjach i jako argumenty code_seg i data_seg pragmas. W edytorze kodu źródłowego akceptowane są znaki dwubajtowe w komentarzach i literałach ciągu, chociaż nie w elementach języka C/C++ (takich jak nazwy zmiennych).

Obsługa edytora metod wejściowych (IME)

Aplikacje napisane dla rynków azjatyckich, które używają MBCS (na przykład Japonia) zwykle obsługują protokół IME systemu Windows do wprowadzania znaków jednobajtowych i dwubajtowych. Środowisko programistyczne Visual C++ zawiera pełną obsługę protokołu IME.

Klawiatury japońskie nie obsługują bezpośrednio znaków Kanji. IME konwertuje ciąg fonetyczny, wprowadzony w jednym z innych japońskich alfabetów (Romaji, Katakana lub Hiragana) na możliwe reprezentacje Kanji. Jeśli istnieje niejednoznaczność, możesz wybrać spośród kilku alternatyw. Po wybraniu zamierzonego znaku Kanji edytor IME przekazuje dwa WM_CHAR komunikaty do aplikacji kontrolującej.

Edytor IME, aktywowany przez kombinację ALT+, jest wyświetlany jako zestaw przycisków (wskaźnik) i okno konwersji. Aplikacja umieszcza okno w punkcie wstawiania tekstu. Aplikacja musi obsługiwać WM_MOVE komunikaty i WM_SIZE je, zmieniając położenie okna konwersji, aby było zgodne z nową lokalizacją lub rozmiarem okna docelowego.

Jeśli chcesz, aby użytkownicy aplikacji mogli wprowadzać znaki Kanji, aplikacja musi obsługiwać komunikaty IME systemu Windows. Aby uzyskać więcej informacji na temat programowania IME, zobacz Input Method Manager (Menedżer metod wejściowych).

Debuger Visual C++

Debuger języka Visual C++ umożliwia ustawianie punktów przerwania w komunikatach IME. Ponadto okno Pamięć może wyświetlać znaki dwubajtowe.

Narzędzia wiersza polecenia

Narzędzia wiersza polecenia języka Visual C++, w tym kompilator, NMAKE i kompilator zasobów (RC.EXE), są włączone w mbcs. Możesz użyć opcji /c kompilatora zasobów, aby zmienić domyślną stronę kodu podczas kompilowania zasobów aplikacji.

Aby zmienić domyślne ustawienia regionalne w czasie kompilacji kodu źródłowego, użyj #pragma setlocale.

Narzędzia graficzne

Narzędzia oparte na systemie Windows Visual C++, takie jak Spy++ i narzędzia do edytowania zasobów, obsługują w pełni ciągi IME.

Zobacz też

Obsługa zestawów znaków wielobajtowych (zestawy MBCS)
Porady dotyczące programowania MBCS