Macros de conversión de cadena
Estas macros proporcionan características de conversión de cadenas.
Macros de conversión de cadenas de ATL y MFC
Las macros de conversión de cadena en las que se centra este tema son válidas tanto para ATL como para MFC. Para más información sobre la conversión de cadenas de MFC, consulte TN059: Usar macros de conversión MBCS/Unicode de MFC y Globales y macros de MFC.
Macros de conversión de cadenas DEVMODE y TEXTMETRIC
Estas macros crean una copia de una estructura DEVMODE o TEXTMETRIC y convierten las cadenas dentro de la nueva estructura en un nuevo tipo de cadena. Las macros asignan memoria en la pila para la nueva estructura y le devuelven un puntero.
MACRONAME( address_of_structure )
Comentarios
Por ejemplo:
DEVMODEW* lpw = DEVMODEA2W(lpa);
y:
TEXTMETRICW* lptmw = TEXTMETRICA2W(lptma);
En los nombres de macro, el tipo de cadena de origen aparece a la izquierda (por ejemplo, A) y el tipo de cadena de destino, a la derecha (por ejemplo, W). A significa LPSTR, OLE significa LPOLESTR, T significa LPTSTR, y W significa LPWSTR.
Por lo tanto, DEVMODEA2W copia una estructura DEVMODE
con cadenas LPSTR en una estructura DEVMODE
con cadenas LPWSTR, TEXTMETRICOLE2T copia una estructura TEXTMETRIC
con cadenas LPOLESTR en una estructura TEXTMETRIC
con cadenas LPTSTR, etc.
Las dos cadenas convertidas en la estructura DEVMODE
son el nombre del dispositivo (dmDeviceName
) y el nombre del formulario (dmFormName
). Las macros de conversión de cadenas DEVMODE
también actualizan el tamaño de la estructura (dmSize
).
Las cuatro cadenas convertidas en la estructura TEXTMETRIC
son el primer carácter (tmFirstChar
), el último carácter (tmLastChar
), el carácter predeterminado (tmDefaultChar
) y el carácter de salto (tmBreakChar
).
El comportamiento de las macros de conversión de cadena DEVMODE
y TEXTMETRIC
depende de la directiva de compilador que haya en vigor (si la hay). Si los tipos de origen y de destino son el mismo, no tiene lugar ninguna conversión. Las directivas de compilador cambian T y OLE del siguiente modo:
Directiva de compilador vigente | T pasa a | OLE pasa a |
---|---|---|
None | A | W |
_UNICODE | W | W |
OLE2ANSI | A | A |
_UNICODE y OLE2ANSI | W | A |
En la tabla siguiente se enumeran las macros de conversión de cadenas DEVMODE
y TEXTMETRIC
.
DEVMODE Macro |
TEXTMETRIC Macro |
---|---|
DEVMODEA2W | TEXTMETRICA2W |
DEVMODEOLE2T | TEXTMETRICOLE2T |
DEVMODET2OLE | TEXTMETRICT2OLE |
DEVMODEW2A | TEXTMETRICW2A |