Partilhar via


Ativando internacionais

Código C e C++ mais tradicional faz suposições sobre manipulação de seqüência de caractere e que não funcionam bem para aplicativos internacionais.Enquanto os dois MFC e o em time de execução biblioteca suporte Unicode ou MBCS, ainda há trabalho para você fazer.Para ajudá-lo, esta seção explica o significado de "Habilitando internacionais" no Visual C++:

  • Unicode e MBCS são ativadas por meio de tipos de dados portátil em listas de parâmetros de função do MFC e tipos de retorno.Esses tipos são definidos condicionalmente de maneiras apropriadas, dependendo se sua compilação define o símbolo _UNICODE ou o símbolo _MBCS (que significa DBCS).Variantes diferentes das bibliotecas de MFC são automaticamente vinculadas com o seu aplicativo, dependendo do que esses dois símbolos define sua compilação.

  • Código da biblioteca de classes usa portátil em time de execução funções e outros meios para garantir o comportamento correto do Unicode ou MBCS.

  • Você ainda deve tratar determinados tipos de tarefas de internacionalização em seu código:

    • Use as funções de time de execução portátil mesmas que tornar MFC portátil em um ambiente.

    • Tornar as seqüências de caracteres literal e caracteres portátil em qualquer ambiente, usando o _T macro.Para obter mais informações, consulte Mapeamentos de texto genérica na tchar.h.

    • Tome precauções ao analisar 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 MBCS.

    • Tome cuidado se você combinar ANSI (8 bit) e caracteres do Unicode (16 bit) 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 de caracteres.

    • Fazer não codificar strings in your aplicativo.Em vez disso, torná-las STRINGTABLE recursos, adicionando-o arquivo do aplicativo .rc.Seu aplicativo, em seguida, 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 de caracteres.

Observação:

Conjuntos de caractere Europeu e MBCS apresentam alguns caractere, sistema autônomo letras acentuadas, com códigos de caractere maiores que 0 x 80.Como grande parte do código usa caracteres assinados, esses caracteres maiores que 0 x 80 são estendidos sinal quando convertido em int.Este é um problema para indexação de matriz porque os caracteres estendidos do sinal, sendo negativo, indexa fora do array.Idiomas que usam MBCS, sistema autônomo japonês, também são exclusivos.Como um caractere pode consistir em 1 ou 2 bytes, você sempre deve manipular dois bytes ao mesmo time.

Consulte também

Conceitos

Unicode e MBCS

Estratégias de internacionalização