Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A maioria dos códigos C e C++ tradicionais faz suposições sobre manipulação de caracteres e cadeias de caracteres que não funcionam bem para aplicativos internacionais. Embora o MFC e a biblioteca de tempo de execução ofereçam suporte a Unicode ou MBCS, ainda há trabalho a fazer. Para guiá-lo, esta seção explica o significado de "habilitação internacional" no Visual C++:
Tanto o Unicode quanto o MBCS são habilitados por meio de tipos de dados portáteis em listas de parâmetros de função MFC e tipos de retorno. Esses tipos são definidos condicionalmente das maneiras apropriadas, dependendo se sua compilação define o símbolo
_UNICODEou o símbolo_MBCS(que significa DBCS). Diferentes variantes das bibliotecas MFC são automaticamente vinculadas ao seu aplicativo, dependendo de qual desses dois símbolos sua compilação define.O código da biblioteca de classes utiliza funções de tempo de execução portáveis e outros meios para assegurar o comportamento correto de Unicode ou MBCS.
Você ainda deve lidar com certos tipos de tarefas de internacionalização em seu código:
Use as mesmas funções de tempo de execução portáteis que tornam o MFC portátil em qualquer ambiente.
Torne cadeias literais e caracteres portáteis em ambos os ambientes, usando a macro
_T. Para obter mais informações, consulte Generic-Text mapeamentos em tchar.h.Tome precauções ao analisar cadeias de caracteres em MBCS. Estas precauções não são necessárias em Unicode. Para obter mais informações, consulte Dicas de programação do MBCS.
Tenha cuidado se você misturar caracteres ANSI (8 bits) e Unicode (16 bits) em seu aplicativo. É possível usar caracteres ANSI em algumas partes do seu programa e caracteres Unicode em outras, mas você não pode misturá-los na mesma cadeia de caracteres.
Não codifice cadeias de caracteres em seu aplicativo. Em vez disso, torne-os recursos STRINGTABLE adicionando-os ao arquivo .rc do aplicativo. 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 cadeia de caracteres.
Observação
Os conjuntos de caracteres europeus e MBCS têm alguns caracteres, como letras acentuadas, com códigos de caracteres maiores que 0x80. Como a maior parte do código usa caracteres com sinal, esses caracteres maiores que 0x80 são estendidos com sinal quando convertidos em int. Isso é um problema para a indexação de matrizes porque os caracteres prolongados pelo sinal, sendo negativos, indexam fora da matriz. Os idiomas que usam MBCS, como o japonês, também são exclusivos. Como um caractere pode consistir em 1 ou 2 bytes, você sempre deve manipular os dois bytes ao mesmo tempo.