Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Большинство традиционных кода C и C++ делают предположения о манипуляциях с символами и строками, которые не работают хорошо для международных приложений. Несмотря на то что MFC и библиотека времени выполнения поддерживают Юникод или MBCS, вам всё ещё нужно выполнить дополнительную работу. В этом разделе объясняется значение термина "международная поддержка" в Visual C++:
В MFC поддержка Юникод и MBCS осуществляется через переносимые типы данных в списках параметров функций и возвращаемых типах. Эти типы условно определяются в зависимости от того, определяет ли сборка символ
_UNICODEили символ_MBCS(что означает DBCS). Различные варианты библиотек MFC автоматически связываются с вашим приложением в зависимости от того, какой из этих двух символов определен в процессе сборки.Код библиотеки классов использует переносимые функции времени выполнения и другие средства для обеспечения правильного поведения Юникода или MBCS.
В коде по-прежнему необходимо обрабатывать определенные виды задач интернационализации:
Используйте те же переносимые функции во время выполнения, которые делают MFC переносимыми в любой среде.
Сделайте литеральные строки и символы переносимыми в одной из сред с помощью макроса
_T. Дополнительные сведения см. в разделе "Сопоставления универсального текста" в tchar.h.Примите меры предосторожности при анализе строк в MBCS. Эти меры предосторожности не требуются в Юникоде. Дополнительные сведения см. в советах по программированию MBCS.
Обратите внимание на то, что в приложении используются символы ANSI (8-разрядная версия) и Юникод (16-разрядная версия). В некоторых частях программы можно использовать символы ANSI, а в других — символы Юникода, но нельзя смешивать их в одной строке.
Не используйте жестко зафиксированные строки в своем приложении. Вместо этого сделайте их ресурсами STRINGTABLE, добавив их в RC-файл приложения. Затем приложение можно локализовать, не требуя изменения исходного кода или повторной компиляции. Для получения дополнительной информации о ресурсах STRINGTABLE, см. String Editor.
Примечание.
Европейские и MBCS-наборы символов имеют некоторые символы, такие как акцентированные буквы, с кодами символов, превышающими 0x80. Так как в большинстве кодов используются символы с изменяемым знаком, эти символы больше 0x80 расширяются со знаком при преобразовании в int. Это проблема для индексирования массива, так как символы с расширением знака, будучи отрицательными, индексируют элементы за пределами массива. Языки, использующие MBCS, такие как японский, также уникальны. Так как символ может состоять из 1 или 2 байтов, вы всегда должны управлять обоими байтами одновременно.
См. также
Юникод и многобайтовая кодировка
Стратегии интернационализации