Разработка приложений с использованием Unicode

Чтобы снизить зависимость приложения от используемой кодировки, целесообразно в программе определить два макроса -UNICODE и _UNICODE. Также рекомендуется использовать новый набор данных и функций, обрабатывающих строки и описанных в стандартных заголовочных файлах.

Обычно, имена Unicode данных и функций содержат префикс "wc" (от wide character), "w". Например, WCHAR - Unicode символ,wcscmp - функция сравнения Unicode строк. Можно также поставить префикс "L" перед текстовой строкой, например, L"Текстовая строка" - строка в формате Unicode.

Чтобы реализовать возможности компиляции двойного назначения, нужно включить в состав программы заголовочный файл tchar.h. Он состоит из макросов, которые ссылаются на Unicode данные и функции, если в программе определен макросUNICODE, и на ANSI - в противном случае. Так, для объявления символьного массива универсального назначения применяется тип TCHAR, который транслируется в WCHAR, если UNICODE определен, и в CHAR, если не определен. Аналогичным образом макросы с префиксом "l" переопределяют строковые функции (lstrlen вместо strlen и т.д.), а для определения символьных и строковых литералов применяется макрос _TEXT (или просто _T). Более подробно этот материал описан в [4].

Прогон программы вывода строки в формате Unicode

В качестве упражнения рекомендуется реализовать программу вывода строки "Hello, world".

#define UNICODE#ifdef UNICODE#define _UNICODE#endif#include <windows.h>#include <tchar.h>#include <stdio.h> void main() {PTCHAR TextString = _T("Hello, world");_tprintf(_T("String - %s\n"), TextString);}

Необходимо убедиться, что программа одинаково работает в случае применения и отключения Unicode.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: