Habilitando internacionais
Código de c e C++ mais tradicional faz suposições sobre manipulação de caractere e de seqüência de caracteres que não funcionam bem para aplicativos internacionais. Enquanto MFC e a biblioteca de tempo de execução oferecem suporte a Unicode ou MBCS, ainda há trabalho a fazer. Para ajudá-lo, esta seção explica o significado de "habilitação internacional" no Visual C++:
MBCS e Unicode são ativadas por meio de tipos de dados portáteis nas listas de parâmetro de função do MFC e tipos de retorno. Esses tipos são definidos de condicionalmente maneiras apropriadas, dependendo se a 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 sua compilação define.
Código da biblioteca de classe usa funções de tempo de execução portátil e outros meios para garantir o comportamento correto do Unicode ou MBCS.
Você ainda deve tratar determinados tipos de tarefas de internacionalização no seu código.
Use as mesmas funções de tempo de execução de portátil que tornam o portátil em um ambiente de MFC.
Tornar os caracteres e seqüências de caracteres literais portátil em um ambiente usando o _ t macro. Para obter mais informações, consulte Os mapeamentos de texto genérico na Tchar.h.
Tome precauções durante a análise de cadeias de caracteres em MBCS. Essas precauções não são necessários em Unicode. Para obter mais informações, consulte Dicas de programação de MBCS.
Tome cuidado se você misturar ANSI (8 bits) e caracteres do Unicode (16 bits) em seu aplicativo. É possível usar os caracteres ANSI em algumas partes do seu programa e os caracteres Unicode em outros, mas você não pode misturá-los na mesma seqüência de caracteres.
Fazer seqüências de caracteres não embutir no seu aplicativo. Em vez disso, torná-los recursos STRINGTABLE, adicionando-o arquivo do aplicativo. rc. Em seguida, pode ser localizado a seu aplicativo sem exigir alterações de código-fonte ou recompilação. Para obter mais informações sobre os recursos STRINGTABLE, consulte O Editor de seqüência de caracteres.
Observação |
---|
Os conjuntos de caracteres Europeu e MBCS tem alguns caracteres, como, por exemplo, letras acentuadas, com códigos de caracteres maiores que 0x80. Como grande parte do código usa caracteres assinados, esses caracteres maiores que 0x80 são de assinatura estendida 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, por exemplo, japonês, também são exclusivos. Porque um caractere pode consistir de 1 ou 2 bytes, você sempre deve manipular ambos os bytes ao mesmo tempo. |