Поделиться через


Макросы преобразования строк

Замечание

Библиотека активных шаблонов (ATL) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.

Эти макросы предоставляют функции преобразования строк.

Макросы преобразования строк ATL и MFC

Рассматриваемые здесь макросы преобразования строк можно использовать как для ATL, так и для MFC. Дополнительные сведения о преобразовании строк MFC см. в разделе TN059. Использование макросов преобразования MFC MBCS/Юникода и макросов MFC и глобальных элементов.

Макросы преобразования строк DEVMODE и TEXTMETRIC

Эти макросы создают копию структуры DEVMODE или TEXTMETRIC и преобразуют строки в новой структуре в новый тип строки. Макросы выделяют память в стеке для новой структуры и возвращают указатель на новую структуру.

MACRONAME( address_of_structure )

Замечания

Например:

DEVMODEW* lpw = DEVMODEA2W(lpa);

and:

TEXTMETRICW* lptmw = TEXTMETRICA2W(lptma);

В именах макросов строка в исходной структуре находится слева (например, А), а тип строки в целевой структуре находится справа (например, W). A означает LPSTR, OLE означает LPOLESTR, T означает LPTSTR, а W — LPWSTR.

Таким образом, DEVMODEA2W копирует структуру со строками LPSTR в DEVMODE структуру со строками LPWSTR, TEXTMETRICOLE2T копирует DEVMODETEXTMETRIC структуру со строками LPOLESTR в TEXTMETRIC структуру со строками LPTSTR и т. д.

Две строки, преобразованные в структуру DEVMODE , — это имя устройства (dmDeviceName) и имя формы (dmFormName). Макросы DEVMODE преобразования строк также обновляют размер структуры (dmSize).

Четыре строки, преобразованные в TEXTMETRIC структуру, являются первым символом (tmFirstChar), последним символом (), символом по умолчанию (tmLastChartmDefaultChar) и символом разрыва (tmBreakChar).

Поведение DEVMODETEXTMETRIC макросов преобразования строк зависит от директивы компилятора( если таковой имеется). Если исходный и конечный типы совпадают, преобразование не выполняется. Директивы компилятора изменяют T и OLE следующим образом:

Действующая директива компилятора T становится OLE становится
ничего Объект W
_ЮНИКОД W W
OLE2ANSI Объект Объект
_UNICODE и OLE2ANSI W Объект

В следующей DEVMODE таблице перечислены макросы и TEXTMETRIC макросы преобразования строк.

DEVMODEМакрос TEXTMETRICМакрос
DEVMODEA2W TEXTMETRICA2W
DEVMODEOLE2T TEXTMETRICOLE2T
DEVMODET2OLE TEXTMETRICT2OLE
DEVMODEW2A TEXTMETRICW2A

См. также

Макросы