Classe CW2AEX
Essa classe é usada pelas macros de conversão de cadeia de caracteres CT2AEX
, CW2TEX
, CW2CTEX
e CT2CAEX
, e pelo typedef CW2A
.
Importante
Essa classe e os respectivos membros não podem ser usados em aplicativos executados no Windows Runtime.
Sintaxe
template<int t_nBufferLength = 128>
class CW2AEX
Parâmetros
t_nBufferLength
O tamanho do buffer usado no processo de tradução. O comprimento padrão é de 128 bytes.
Membros
Construtores públicos
Nome | Descrição |
---|---|
CW2AEX::CW2AEX |
O construtor . |
CW2AEX::~CW2AEX |
O destruidor. |
Operadores públicos
Nome | Descrição |
---|---|
CW2AEX::operator LPSTR | Operador de conversão. |
Membros de Dados Públicos
Nome | Descrição |
---|---|
CW2AEX::m_psz |
O membro de dados que armazena a cadeia de caracteres fonte. |
CW2AEX::m_szBuffer |
O buffer estático, usado para armazenar a cadeia de caracteres convertida. |
Comentários
A menos que a funcionalidade extra seja necessária, use CT2AEX
, CW2TEX
, CW2CTEX
, CT2CAEX
ou CW2A
em seu código.
Essa classe contém um buffer estático de tamanho fixo que é usado para armazenar o resultado da conversão. Se o resultado é muito grande para caber no buffer estático, a classe aloca memória usando malloc
, liberando a memória quando o objeto sai do escopo. Isso vai garantir que, ao contrário das macros de conversão de texto disponíveis em versões anteriores da ATL, essa classe será segura para usar em loops e não causará estouro da pilha.
Se a classe tentar alocar memória no heap e falhar, ela chamará AtlThrow
com um argumento de E_OUTOFMEMORY
.
Por padrão, as macros e classes de conversão da ATL usam a página de código ANSI dos threads atuais para a conversão. Se desejar substituir esse comportamento para uma conversão específica, especifique a página de código como o segundo parâmetro para o construtor da classe.
As seguintes macros são baseadas nessa classe:
CT2AEX
CW2TEX
CW2CTEX
CT2CAEX
O seguinte typedef baseia-se nessa classe:
CW2A
Para ver uma discussão sobre essas macros de conversão de texto, confira Macros de conversão de cadeia de caracteres da ATL e MFC.
Exemplo
Confira Macros de conversão de cadeia de caracteres da ATL e MFC para obter um exemplo de como usar essas macros de conversão de cadeia de caracteres.
Requisitos
Cabeçalho: atlconv.h
CW2AEX::CW2AEX
O construtor .
CW2AEX(LPCWSTR psz, UINT nCodePage) throw(...);
CW2AEX(LPCWSTR psz) throw(...);
Parâmetros
psz
A cadeia de caracteres de texto a ser convertida.
nCodePage
A página de código usada para executar a conversão. Confira a discussão do parâmetro de página de código da função MultiByteToWideChar
do SDK do Windows para obter mais detalhes.
Comentários
Aloca o buffer usado no processo de tradução.
CW2AEX::~CW2AEX
O destruidor.
~CW2AEX() throw();
Comentários
Libera o buffer alocado.
CW2AEX::m_psz
O membro de dados que armazena a cadeia de caracteres fonte.
LPSTR m_psz;
CW2AEX::m_szBuffer
O buffer estático, usado para armazenar a cadeia de caracteres convertida.
char m_szBuffer[t_nBufferLength];
CW2AEX::operator LPSTR
Operador de conversão.
operator LPSTR() const throw();
Valor de retorno
Retorna a cadeia de caracteres de texto como tipo LPSTR
.
Confira também
Classe CA2AEX
Classe CA2CAEX
Classe CA2WEX
Classe CW2CWEX
Classe CW2WEX
Visão geral da aula