Поддержка Юникода и многобайтовой кодировки (mbcs)
Некоторые языки, например японцы и китайцы, имеют большой кодировки.К программированию поддержку для этих рынков, библиотеки Microsoft Foundation Class (MFC) включается для 2 разных подходов к обработке больших кодировки:
Unicode
Многобайтовые кодировки (mbcs)
Поддержка MFC для строк в юникоде
Все библиотеки классов условной включена для символов юникода и строк.В частности, класс CString Юникод- разрешения.
UAFXCW.LIB |
UAFXCW.PDB |
UAFXCWD.LIB |
UAFXCWD.PDB |
MFC xx U.LIB |
MFC xx U.PDB |
MFC xx U.DLL |
MFC xx UD.LIB |
MFC xx UD.PDB |
MFC xx UD.DLL |
MFCS xx U.LIB |
MFCS xx U.PDB |
MFCS xx UD.LIB |
MFCS xx UD.PDB |
MFCM xx U.LIB |
MFCM xx U.PDB |
MFCM xx U.DLL |
MFCM xx UD.LIB |
MFCM xx UD.PDB |
MFCM xx UD.DLL |
(xx представляет номер версии файла; например, "80" означает версию 8.0).
CString основано на типе данных TCHAR.Если символ указан _UNICODE для построения программы, TCHAR определяется как тип, wchar_t тип кодирования 16-разрядных символов.В противном случае - значение TCHAR определяется как обычное char, 8 разрядное кодирование символов.Поэтому в юникод, CString разрядных состоит из 16 символов.Без Юникода, он состоит из знаков, типа char.
Завершить программирование в юникоде приложения, также:
Используйте макрос _T для условного реализованы строковые литералы, можно переносить в юникод.
При передаче строки, обратите внимание, требуют ли аргументы функции длину (в символах) или длина в байтах.Это различие важно при использовании строки в юникоде.
Использовать переносимые версии функций среды выполнения c строка- обработке.
Используйте следующие типы данных для символов и указателей символов:
TCHAR где можно использовать char.
LPTSTR где можно использовать char*.
LPCTSTR где можно использовать const char*.CString предоставляет оператор LPCTSTR преобразование между CString и LPCTSTR.
CString также предоставляет Юникод- осведомленные конструкторы, операторы присваивания и операторы сравнения.
Дополнительные сведения о программировании в юникоде см. в разделе Разделы в юникоде.Справочник по библиотеке времени выполнения определяет переносимые версии всех его строка- при обработке функций.См. раздел категорию интернационализация.
Поддержка MFC для строк mbcs
Библиотека классов также включена для многобайтовых кодировок, но только для символов двойной- байт - наборов (dbcs).
В многобайтовой кодировке, знак может быть один или два байта.Если шириной 2 байта, то его первый байт специальный старший байт", "выбор из указанного диапазона, в зависимости от которого кодовой страницы.Принятый, время опережения и "младшие байты" определяющих уникальный кодирование символов.
Если символ указан _MBCS для построения программы, типа TCHAR, на котором основано CString, сопоставляется с char.Это значение необходимо, чтобы определить, какие байты в CString старших байтов и младшие байты.Предоставляет функции библиотеки времени выполнения языка c, помогающие указать это.
В двухбайтовой кодировке, заданного строка может содержать любые символы ANSI единый- байта, все двухбайтовые символы или сочетание 2.Эти возможности требующих особого ухода в анализ строк.Сюда входят объекты CString.
![]() |
---|
Сериализация строки в юникоде в MFC может считывать и строками в юникоде, так и mbcs независимо от которых версия приложения.Файлы данных переносимыми между Юникодом и версиями многобайтовой кодировки программы. |
Версии универсального текст" использование функций-членов "CString специальные функции времени выполнения c они вызывают или они используют Юникод- осведомленные функции.Поэтому, например, если функция CString обычно ПозвонитьTfа бы strcmp, он вызывает соответствующую функцию _tcscmp универсальный- текста.В зависимости от того как символы _MBCS и _UNICODE указаны, _tcscmp сопоставляет следующим образом:
Указанный _MBCS |
_mbscmp |
Указанный _UNICODE |
wcscmp |
Отсутствие символа не определен |
strcmp |
![]() |
---|
Символы _MBCS и _UNICODE являются взаимоисключающими. |
Сопоставления функции Универсальный- текста для всех подпрограмм среды выполнения при обработке строка- рассматриваются в Справочник по библиотеке времени выполнения языка c.В частности, см. в разделе Интернационализация.
Аналогичным образом, методы CString реализуются с помощью "универсальных" сопоставлений типов данных.Чтобы включить и многобайтовые кодировки и Юникод, MFC использует TCHAR для char, LPTSTR для char* и LPCTSTR для const char*.Они предоставляют правильные сопоставления или многобайтовой кодировки или юникод.