Windows для профессионалов


Создание программ, способных использовать и ANSI, и Unicode - часть 4


BOOL IsCharUpper(TCHAR ch);

И последняя группа функций из библиотеки С, о которых я хотел рассказать, — prmtf. Если при компиляции _UNICODE определен, они ожидают передачи всех символьных и строковых параметров в Unicode; в ином случае — в ANSI.

Microsoft ввела в семейство фупкций printf своей С-библиотеки дополнительные типы полей, часть из которых не поддерживается в ANSI C. Они позволяют легко сравнивать и смешивать символы и строки с разной кодировкой. Также расширена функция wsprintf операционной системы. Вот несколько примеров (обратите внимание на использование буквы s в верхнем и нижнем регистре):

char szA[100]; // строковый буфер e ANSI
WCHAR szW[100]; // строковый буфер в Unicode

// обычный вызов sprintf: все строки в ANSI
sprintf(szA, "%s", "ANSI Str");

// преобразуем строку из Unicode в ANSI
sprintf(szA, "%S", "Unicode Str");

// обычный вызов swprintf. все строки в Unicode
swprintf(szW, L"%s", L"Unicode Str");

// преобразуем строку из ANSI в Unicode
swprintf(s/W, L"%S", "ANSI Str");




Начало  Назад  Вперед