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


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

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

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

Рассматриваемые здесь макросы преобразования строк можно использовать как для ATL, так и для MFC. Дополнительные сведения о преобразовании строк MFC см. в статье TN059. Использование макросов преобразования MFC МБ CS/Юникода и макросов 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

См. также

Макросы