Włączanie międzynarodowych

Najbardziej tradycyjny kod c i C++ sprawia, że założenia dotyczące znaków i ciąg manipulacji, które nie działają dobrze w aplikacjach międzynarodowych.Chociaż zarówno MFC i run-time library obsługuje Unicode lub MBCS, wciąż istnieje pracy robić.Pomocne, w tej sekcji wyjaśniono znaczenie "Włączanie międzynarodowych" w języku Visual C++:

  • Unicode i MBCS są włączane przy użyciu przenośnych typów danych na listach parametr funkcji MFC i zwracanych typów.Te typy są warunkowo zdefiniowane w odpowiedni sposób, w zależności od tego, czy budowania definiuje symbol _UNICODE lub symbol _MBCS (co oznacza DBCS).Warianty biblioteki MFC są automatycznie łączone z aplikacji, w zależności od tego, która z tych dwóch symboli definiuje budowania.

  • Kod biblioteki klas używa przenośnych funkcji wykonywalnych i innych środków, aby zapewnić poprawne zachowanie Unicode lub MBCS.

  • Możesz nadal obsługiwać niektóre rodzaje zadań internacjonalizacji w kodzie:

    • Funkcji tej samej przenośne run-time wchodzące MFC przenośnego albo środowisku.

    • Wprowadź ciągi i znaki przenośnego albo środowisku za pomocą _T makro.Aby uzyskać więcej informacji, zobacz Mapowań tekst rodzajowy w Tchar.h.

    • Środki ostrożności podczas analizy ciągów w obszarze MBCS.Te środki ostrożności są niepotrzebne w Unicode.Aby uzyskać więcej informacji, zobacz Porady programowania MBCS.

    • Dba, jeśli w aplikacji wymieszać ANSI (8-bitowa) i znaki Unicode w (16-bitowy).Można użyć znaków ANSI w niektórych częściach programu i znaków Unicode w innych, ale nie można ich mieszać w ten sam ciąg.

    • Czy ciągi nie kodowane w aplikacji.Zamiast tego należy je STRINGTABLE zasobów przez dodanie ich do pliku .rc aplikacji.Aplikacja może być lokalizowany następnie bez konieczności zmiany kodu źródłowego lub ponownej kompilacji.Aby uzyskać więcej informacji o STRINGTABLE zasobów, zobacz Edytor ciągu.

[!UWAGA]

Zestawy znaków Europejskiej i MBCS mają niektóre znaki, takie jak liter akcentowanych z większą niż 0x80 kodów znaków.Ponieważ większość kodu podpisanego znaków, są te znaki, które są większe niż 0x80 znak przedłużony po konwersji na int.Jest to problem dla indeksowania tablicy, ponieważ znaki rozszerzone znak jest ujemna, indeksy poza tablicy.Języki używające MBCS, takich jak japoński, również są unikatowe.Ponieważ znak może składać się z 1 lub 2 bajtów, należy zawsze manipulować zarówno bajtów w tym samym czasie.

Zobacz też

Koncepcje

Unicode i MBCS

Strategie internacjonalizacji