Cadeia de caracteres de conversão Macros

As macros de conversão de Cadeia de caracteres aqui discutidas são válidas para ATL e MFC. Para obter mais informações sobre conversão de Cadeia de caracteres MFC, consulte TN059: usando Macros de conversão MFC MBCS/Unicode e Macros MFC e globais.

A sintaxe das macros de conversão de Cadeia de caracteres é:

NOMEDAMACRO ( string_address )

Por exemplo:

A2W(lpa)

Em nomes de macro, o tipo de Cadeia de caracteres de origem é à esquerda (por exemplo, A) e o tipo de Cadeia de caracteres de destino é à direita (por exemplo, W). A representa a LPSTR, OLE representa LPOLESTR, T representa o LPTSTRe w representa o LPWSTR.

Assim, A2W converte um LPSTR para um LPWSTR, OLE2T converte um LPOLESTR para um LPTSTRe assim por diante.

A Cadeia de caracteres de destino é criada usando _alloca, exceto quando o tipo de destino é BSTR. Usar _alloca aloca memória na pilha, para que quando a função retorna, ele é automaticamente limpo.

Se não houver um c no nome da macro, a macro converte uma Cadeia de caracteres const . Por exemplo, W2CA converte um LPWSTR em um LPCSTR.

&Notanbsp;  Ao usar uma macro de conversão de Cadeia de caracteres ATL, especifique a macro USES_CONVERSION no início da sua função para evitar erros do compilador. Por exemplo:

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

O comportamento de macros de conversão de Cadeia de caracteres ATL depende a diretiva de compilador em efeito, se houver. Se os tipos de origem e de destino forem iguais, nenhuma conversão ocorre. Diretivas de compilador alterar t e OLE da seguinte forma:

Diretiva de compilador em efeito T torna-se OLE torna-se
nenhum A W
UNICODE W W
OLE2ANSI A A
Unicode e OLE2ANSI W A

A tabela a seguir lista as macros de conversão de Cadeia de caracteres ATL.

Macros de conversão de Cadeia de caracteres 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 e funções Global

Ver também

DEVMODE e TEXTMETRIC Cadeia de caracteres de conversão Macros

Index