Compartilhar via


Suporte de MBCS no Visual C++

Quando executado em uma versão habilitada para MBCS do Windows, o sistema de desenvolvimento do Visual C++ (inclusive o editor de código-fonte integrado, o depurador e as ferramentas de linha de comando) é completamente habilitado para MBCS, com exceção da janela de memória.

A janela de memória não interpreta bytes de dados como caracteres MBCS, embora possa interpretá-los como caracteres ANSI ou Unicode. Os caracteres ANSI sempre têm 1 byte de tamanho e os caracteres Unicode têm 2 bytes de tamanho. Com o MBCS, os caracteres podem ter 1 ou 2 bytes de tamanho e sua interpretação depende de qual página de código está em uso. Por isso, é difícil para a janela de memória exibir de forma confiável caracteres MBCS. A janela de memória não pode saber qual byte é o início de um caractere. O desenvolvedor pode exibir os valores de bytes na janela de memória e pesquisar o valor nas tabelas para determinar a representação de caracteres. Isso é possível porque o desenvolvedor sabe o endereço inicial de uma cadeia de caracteres com base no código-fonte.

O Visual C++ aceita caracteres de bytes duplos onde for apropriado fazer isso. Isso inclui nomes de caminho e nomes de arquivo em caixas de diálogo e entradas de texto no editor de recursos do Visual C++ (por exemplo, texto estático no editor de diálogo e entradas de texto estático no editor de ícones). Além disso, o pré-processador reconhece algumas diretivas de bytes duplos, por exemplo, nomes de arquivo em instruções #include e como argumentos para os pragmas code_seg e data_seg. No editor de código-fonte, caracteres de bytes duplos em literais de cadeia de caracteres e comentários são aceitos, embora não em elementos de linguagem C/C++ (como nomes de variáveis).

Suporte para o IME (Editor de Método de Entrada)

Aplicativos escritos para mercados do Leste Asiático que usam MBCS (por exemplo, Japão) normalmente dão suporte ao IME do Windows para inserir caracteres de bytes únicos e duplos. O ambiente de desenvolvimento do Visual C++ contém suporte total para o IME.

Os teclados japoneses não dão suporte direto a caracteres Kanji. O IME converte uma cadeia de caracteres fonética, inserida em um dos outros alfabetos japoneses (Romaji, Katakana ou Hiragana) em suas possíveis representações Kanji. Se houver ambiguidade, você poderá selecionar entre várias alternativas. Quando você seleciona o caractere Kanji pretendido, o IME passa duas mensagens WM_CHAR para o aplicativo de controle.

O IME, ativado pela combinação de teclas ALT+', aparece como um conjunto de botões (um indicador) e uma janela de conversão. O aplicativo posiciona a janela no ponto de inserção de texto. O aplicativo deve manipular mensagens WM_MOVE e WM_SIZE reposicionando a janela de conversão para estar em conformidade com o novo local ou tamanho da janela de destino.

Se você quiser que os usuários do aplicativo tenham a capacidade de inserir caracteres Kanji, o aplicativo deverá lidar com mensagens IME do Windows. Para obter mais informações sobre a programação do IME, consulte o Gerenciador de Métodos de Entrada.

Depurador do visual C++

O depurador do Visual C++ fornece a capacidade de definir pontos de interrupção em mensagens IME. Além disso, a janela Memória pode exibir caracteres de bytes duplos.

Ferramentas de linha de comando

As ferramentas de linha de comando do Visual C++, incluindo o compilador, o NMAKE e o compilador de recursos (RC.EXE), estão habilitadas para MBCS. Você pode usar a opção /c do compilador de recursos para alterar a página de código padrão ao compilar os recursos do aplicativo.

Para alterar a localidade padrão no tempo de compilação do código-fonte, use #pragma setlocale.

Ferramentas gráficas

As ferramentas baseadas no Windows do Visual C++, como o Spy++ e as ferramentas de edição de recursos, dão suporte total a cadeias de caracteres IME.

Confira também

Suporte para MBCSs (conjuntos de caracteres multibyte)
Dicas de programação do MBCS