Habilitação internacional
Código c e C++ mais tradicional faz suposições sobre manipulação de caracteres e seqüência de caracteres que não funcionam bem para aplicativos internacionais.Embora o MFC e a biblioteca de tempo de execução suportem Unicode ou MBCS, ainda há trabalho para fazer.Para ajudá-lo, esta seção explica o significado de "Habilitando internacionais" no Visual C++:
Unicode e MBCS são ativados por meio de tipos de dados portáteis no MFC listas de parâmetros de função e tipos de retorno.Esses tipos são definidos condicionalmente das maneiras apropriadas, dependendo se sua compilação define o símbolo Unicode ou o símbolo MBCS do arquivo (que significa DBCS).Variantes das bibliotecas MFC são automaticamente vinculadas com seu aplicativo, dependendo de qual desses dois símbolos define sua compilação.
Código de biblioteca de classe usa funções de tempo de execução portátil e outros meios para garantir comportamento correto Unicode ou MBCS.
Você ainda deve tratar determinados tipos de tarefas de internacionalização do código:
Use as mesmas funções de tempo de execução portátil que tornam MFC portátil em um ambiente.
Tornar portátil em um ambiente, seqüências de caracteres literais e caracteres usando o t macro.Para obter mais informações, consulte Mapeamentos de texto genérico em Tchar.h.
Tome precauções ao analisar cadeias de caracteres em MBCS.Essas precauções não são necessárias em Unicode.Para obter mais informações, consulte MBCS programação dicas.
Tome cuidado se você combinar ANSI (8 bits) e Unicode (16 bits) caracteres em seu aplicativo.É possível usar caracteres ANSI em algumas partes do seu programa e caracteres Unicode em outros, mas não é possível combiná-los na mesma seqüência.
Fazer não codificar seqüências de caracteres em seu aplicativo.Em vez disso, torná-los recursos STRINGTABLE, adicionando-o arquivo do aplicativo. rc.Seu aplicativo pode ser localizado, sem exigir alterações no código fonte ou recompilação.Para obter mais informações sobre recursos STRINGTABLE, consulte Editor de seqüência.
Observação |
---|
Conjuntos de caracteres Europeu e MBCS tem alguns caracteres, como letras acentuadas com códigos de caracteres maiores que 0x80.Como grande parte do código usa caracteres assinados, esses caracteres maiores 0x80 são estendido sinal quando convertido em int.Este é um problema para a indexação de matriz porque os caracteres estendidos de sinal, sendo negativo, indexa fora do array.Idiomas que usam MBCS, como japonês, também são exclusivos.Porque um caractere pode consistir em 1 ou 2 bytes, você sempre deve manipular dois bytes ao mesmo tempo. |