Suporte a Unicode
Unicode é uma especificação para oferecer suporte a todos os conjuntos de caracteres, incluindo os conjuntos de caracteres não podem ser representados em um único byte.Se você está programando para um mercado internacional, considere usar o Unicode ou conjuntos de caracteres multibyte (MBCSs) ou ativando seu programa para construí-lo para um alterando um switch.
Um caractere largo é um código de caractere multilíngües 2 bytes.A maioria dos caracteres usados na computação moderna em todo o mundo, incluindo símbolos técnicos e caracteres especiais de publicação, pode ser representado de acordo com a especificação do Unicode como um caractere largo.Caracteres que não podem ser representados em 1 caractere largo podem ser representados em um par de Unicode com recurso de substitutos de Unicode.Porque cada caractere largo sempre é representado em um tamanho fixo de 16 bits, usando caracteres ampla simplifica a programação com conjuntos de caracteres internacionais.
Uma cadeia de caracteres largos é representada como um [] wchar_t matriz e é apontada por um wchar_t* ponteiro.Qualquer caractere ASCII pode ser representado como um caractere largo por prefixando carta l para o caractere.Por exemplo, '\0' L é a terminação larga (16 bits) Nulo caracteres.Da mesma forma, qualquer seqüência de caracteres ASCII literal pode ser representada como um literal de seqüência de caractere largo por prefixando carta l para o literal do ASCII (L "Hello").
Geralmente, caracteres extensos tomar mais espaço na memória de caracteres multibyte mas são mais rápidos de processo.Além disso, apenas uma localidade pode ser representado em um tempo de codificação multibyte, enquanto conjuntos de todos os caracteres do mundo são representados simultaneamente por representação Unicode.
A estrutura do MFC está habilitado para Unicode em todo, exceto para as classes de banco de dados.(ODBC não está habilitado para Unicode.) MFC realiza permitindo Unicode usando macros portátil em todo, conforme mostrado na tabela a seguir.
Tipos de dados portáteis no MFC
Tipo de dados não-portáteis |
Substituído por esta macro |
---|---|
char |
_TCHAR |
char *, LPSTR (tipo de dados Win32) |
LPTSTR |
Const char *, LPCSTR (tipo de dados Win32) |
LPCTSTR |
Classe CString usa _TCHAR como sua base e fornece construtores e operadores para conversões fáceis.A maioria das operações de cadeia de caracteres para Unicode pode ser escrito usando a mesma lógica usada para manipular o conjunto de caracteres Windows ANSI, exceto que a unidade básica de operação é um caractere de 16 bits em vez de um byte de 8 bits.Diferentemente de trabalhando com conjuntos de caracteres multibyte (MBCSs), não é necessário (e não deve) tratar um caractere Unicode, como se fosse dois bytes distintas.
O que você deseja fazer?
Usar wmain, de modo que pode passar argumentos de caractere largo para meu programa
Aprenda sobre mapeamentos de texto genérico para portabilidade byte-largura