Макросы преобразования строк
Эти макросы предоставляют функции преобразования строк.
Макросы преобразования строк 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 копирует DEVMODE
TEXTMETRIC
структуру со строками LPOLESTR в TEXTMETRIC
структуру со строками LPTSTR и т. д.
Две строки, преобразованные в структуру DEVMODE
, — это имя устройства (dmDeviceName
) и имя формы (dmFormName
). Макросы DEVMODE
преобразования строк также обновляют размер структуры (dmSize
).
Четыре строки, преобразованные в TEXTMETRIC
структуру, являются первым символом (tmFirstChar
), последним символом (), символом по умолчанию (tmLastChar
tmDefaultChar
) и символом разрыва (tmBreakChar
).
Поведение DEVMODE
TEXTMETRIC
макросов преобразования строк зависит от директивы компилятора( если таковой имеется). Если исходный и конечный типы совпадают, преобразование не выполняется. Директивы компилятора изменяют T и OLE следующим образом:
Действующая директива компилятора | T становится | OLE становится |
---|---|---|
ничего | Объект | W |
_ЮНИКОД | W | W |
OLE2ANSI | Объект | Объект |
_UNICODE и OLE2ANSI | W | Объект |
В следующей DEVMODE
таблице перечислены макросы и TEXTMETRIC
макросы преобразования строк.
DEVMODE Макрос |
TEXTMETRIC Макрос |
---|---|
DEVMODEA2W | TEXTMETRICA2W |
DEVMODEOLE2T | TEXTMETRICOLE2T |
DEVMODET2OLE | TEXTMETRICT2OLE |
DEVMODEW2A | TEXTMETRICW2A |