Unicode e multibyte conjunto de caractere Support (MBCS)
Alguns mercados internacionais usar linguagens, sistema autônomo japonês e chinês, com conjuntos de caractere grandes.Para oferecer suporte à programação para esses mercados, o Microsoft Foundation classe biblioteca (MFC) é habilitada para duas abordagens diferentes para lidar com conjuntos de caractere grandes:
Unicode
Conjuntos de caractere multibyte (MBCS)
A biblioteca de classes inteiras condicionalmente está habilitada para Unicode e seqüências de caracteres.Classe em particular, CString está habilitado para Unicode.
Observação: |
---|
As versões Unicode de bibliotecas MFC estão não copiado para o disco rígido, a menos que você selecionar durante uma instalação personalizada.Eles não são copiados durante a outros tipos de instalação.Se você tentar criar ou executar um aplicativo MFC Unicode sem os arquivos do MFC Unicode, você pode receber erros. |
Para copiar os arquivos no disco rígido, execute a instalação novamente e clicar Adicionar ou remover recursos.clicar Ferramentas de linguagem, clicar **O Visual C++**e clicar Bibliotecas do Visual C++ classe & modeloe selecionar as duas Unicode de bibliotecas compartilhadas do ATL do MFC and Unicode de bibliotecas estáticas do ATL do MFC.Isso irá copiar os arquivos a seguir para seu disco rígido:
UAFXCW.LIB |
UAFXCW.PDB |
UAFXCWD.LIB |
UAFXCWD.PDB |
MFCxxU.LIB |
MFCxxU.PDB |
MFCxxU.DLL |
MFCxxUD.LIB |
MFCxxUD.PDB |
MFCxxUD.DLL |
MFCSxxU.LIB |
MFCSxxU.PDB |
MFCSxxUD.LIB |
MFCSxxUD.PDB |
MFCMxxU.LIB |
MFCMxxU.PDB |
MFCMxxU.DLL |
MFCMxxUD.LIB |
MFCMxxUD.PDB |
MFCMxxUD.DLL |
em que xx representa o número da versão do arquivo; por exemplo, '80' representa a versão 8.0.
CString se baseia o TCHAR tipo de dados.Se o símbolo _UNICODE definido para uma compilação do seu programa, TCHAR é definida sistema autônomo digitar wchar_t, um tipo; de codificação de caracteres de 16 bit caso contrário, ele é definido sistema autônomo char, codificação de caracteres de 8 bit normal. Em Unicode, então, CStrings são compostos de caracteres de 16 bit. Sem Unicode, eles são compostos de caracteres do tipo char.
Para programação Unicode completa do seu aplicativo, você deve também:
Use o _T macro para condicionalmente literal seqüências de código para ser portátil para Unicode.
Quando você passar cadeias de caracteres, preste atenção se argumentos da função exigem um comprimento em caracteres ou um comprimento em bytes.A diferença é importante se você estiver usando seqüências de caracteres Unicode.
Usar versões portáteis do C em time de execução funções de manipulação de seqüência de caracteres.
Usar os seguintes tipos de dados de caracteres e ponteiros de caractere:
TCHAR Você usaria char.
LPTSTR Onde você usaria char *.
LPCTSTR Onde você usaria Const char *.CString Fornece o operador LPCTSTR para converter entre CString e LPCTSTR.
CString também fornece construtores compatível com Unicode, operadores de atribuição e operadores de comparação.
Para obter informações relacionadas sobre o Unicode de programação, consulte Unicode e MBCS and Tópicos de Unicode.The Biblioteca em time de execução referência define versões portáteis de todas as suas funções de manipulação de seqüência de caracteres.Consulte a categoria Internacionalização.
A biblioteca de classes também estiver ativada para conjuntos de caractere multibyte — especificamente para conjuntos de caractere de dois byte (DBCS).
Neste esquema de um caractere pode ser um ou dois bytes ampla.Se for largura de dois bytes, o primeiro byte é um "byte inicial," escolhida a partir de um determinado intervalo dependendo do código de página está em uso especial.Juntos, o cliente potencial e "trilha bytes" especificar uma codificação de caracteres único.
Se o símbolo _MBCS definido para uma compilação do seu programa, o tipo de TCHAR, on which CString se baseia, mapeia para char. Cabe a você a determinar quais bytes em um CString são bytes do cliente potencial e quais são trilha bytes. O C em time de execução biblioteca fornece funções para ajudar a determinar isso.
Em DBCS, uma determinada seqüência de caracteres pode conter todos os caracteres ANSI um byte, todos os caracteres de dois bytes ou uma combinação dos dois.Essas possibilidades exigem cuidados especiais analisar cadeias de caracteres, incluindo CString objetos.
Observação: |
---|
Serialização de seqüência de caracteres Unicode no MFC pode ler as seqüências de caracteres Unicode e MBCS independentemente de qual versão do aplicativo que você está executando .Assim, seus arquivos de dados são portáteis entre as versões Unicode e MBCS do seu programa. |
CStringfunções de membro funções de uso especial "texto genérico" versões do time de execução C eles telefonar, ou usar funções compatível com Unicode. Assim, por exemplo, se um CString função normalmente chamaria strcmp, ele chama a função texto genérico correspondente _tcscmp em vez disso. Dependendo de sistema autônomo sistema autônomo símbolos de _MBCS and _UNICODE definidas, _tcscmp mapeadas da seguinte forma:
_MBCS definido |
_mbscmp |
_UNICODE definido |
wcscmp |
Nenhum símbolo definido |
strcmp |
Observação: |
---|
Os símbolos _MBCS and _UNICODE são mutuamente exclusivo. |
Mapeamentos de função de texto genérica para todas as rotinas de tratamento de seqüência de caracteres de time de execução são detalhados no Referência da biblioteca de time de execução.Consulte a categoria Internacionalização.
Da mesma forma, CStringfunções de membro são implementadas usando mapeamentos de tipo de dados "genéricos". Para habilitar MBCS e Unicode, o MFC usa TCHAR for char, LPTSTR para char *, and LPCTSTR para Const char *.Isso resultam em mapeamentos corretos para MBCS ou Unicode.