Macros de conversión de cadenas

Las macros de conversión de la cadena discutidas aquí son válidas para ATL y MFC. Para obtener más información sobre conversión de cadenas MFC, vea TN059: mediante Macros de conversión de MFC MBCS/Unicode y las Macros MFC y Globals.

La sintaxis de las macros de conversión de cadenas:

MACRONAME ( string_address )

Por ejemplo:

A2W(lpa)

En los nombres de macro, el tipo de cadena de origen es de la izquierda (por ejemplo, A) y el tipo de cadena de destino está a la derecha (por ejemplo, W). A significa LPSTR, OLE stands para LPOLESTR, LPTSTR T representa y significa W LPWSTR.

Así, A2W convierte un LPSTR en un LPWSTR, OLE2T convierte un LPOLESTR a un LPTSTRetc.

La cadena de destino se crea utilizando _alloca, excepto cuando el tipo de destino es BSTR. Utilizando _alloca asigna memoria de la pila, así que cuando su función devuelve, automáticamente se limpia.

Si hay una c en el nombre de la macro, la macro se convierte en una cadena const . Por ejemplo, W2CA convierte un LPWSTR a un LPCSTR.

&Notanbsp;  Al utilizar una macro de conversión de cadena ATL, especificar la macro USES_CONVERSION al comienzo de su función a fin de evitar errores del compilador. Por ejemplo:

void func (LPSTR lpsz)
{
 nbsp; USES_CO&NVERSION;
   ...
   LPWSTR x = A2W(lpsz)
   / / Hacer algo con x
   ...
}

El comportamiento de las macros de conversión de ATL cadena depende de la Directiva del compilador en efecto, si alguna. Si los tipos de origen y de destino son los mismos, conversión no tiene lugar. Directivas de compilador cambiar t y OLE como sigue:

Directiva del compilador en efecto Convierte en t OLE se convierte en
ninguno A W
_UNICODE W W
OLE2ANSI A A
_UNICODE y OLE2ANSI W A

La tabla siguiente muestran las macros de conversión de cadena ATL.

Macros de conversión de cadena ATL

A2BSTR OLE2A T2A W2A
A2COLE OLE2BSTR T2BSTR W2BSTR
A2CT OLE2CA T2CA W2CA
A2CW OLE2CT T2COLE W2COLE
A2OLE OLE2CW T2CW W2CT
A2T OLE2T T2OLE W2OLE
A2W OLE2W T2W W2T

ATL Macros y funciones globales

Véase también

DEVMODE y Macros de conversión de cadena TEXTMETRIC

Index