Стандартные функции C
Стандартные библиотеки среды выполнения C содержат версии строковых функций Юникода UTF-16 (широкий символ), которые можно использовать с Юникодом и байт-ориентированными версиями строковых функций, которые можно использовать с символами из однобайтовых наборов символов (SBCSs). WCHAR типа данных Юникода совместим с типом данных wchar_t в ANSI C и разрешает доступ к строковым функциям Юникода. Версии функций Юникод начинаются с букв "wcs" (или иногда "_wcs"). Тип данных CHAR, используемый для кодовых страниц, совместим с символьным типом данных в ANSI C, чтобы разрешить доступ к функциям строки символов. Символьные версии функций начинаются с букв "str". Существуют также специальные версии для двубайтовых наборов (DBCSS), которые начинаются с букв "_mbs".
Стандартные библиотеки среды выполнения C включают универсальные функции для всех стандартных строковых функций C. Они начинаются с "_tcs" и перечислены в файле заголовка Tchar.h. Эти функции используют универсальный тип данных TCHAR.
Приложение должно добавить следующие строки для использования универсальных функций и компиляции для Юникода.
#define _UNICODE
#include <tchar.h>
#include <wchar.h>
Обратите внимание, что требуются файлы Tchar.h и Wchar.h, а также требуется основное подчеркивание в переменной _UNICODE. Эта nomenclature зависит от стандартной библиотеки C. Отрисовка ЮНИКОДа без подчеркивания используется для сред выполнения Microsoft Windows.
Функции wcstombs и mbstowcs могут преобразоваться из набора символов, поддерживаемого стандартной библиотекой C, в Юникод и обратно с некоторыми ограничениями. Дополнительные сведения о переводе строк в Юникод и обратно см. в перевода между типами строк.
Функция печати, определенная в Tchar.h, поддерживает те же спецификации формата, что и функции печати Strsafe.h, например StringCbPrintf. Аналогичным образом Tchar.h определяет функцию wprintf, в которой сама строка формата является строкой Юникода.
Осторожность
Низкая обработка буфера связана со многими проблемами безопасности, включающими переполнение буфера. См. справочник Strsafe.h. Функции, определенные в Strsafe.h, обеспечивают дополнительную обработку буферов в коде. Они предназначены для замены встроенных аналогов C/C++, а также конкретных реализаций Microsoft Windows. Дополнительные сведения см. в разделе Вопросы безопасности: международные функции.
Связанные разделы
-
Юникод в API Windows