Compartir a través de


Compatibilidad con MBCS en Visual C++

Cuando se ejecuta en una versión habilitada para MBCS de Windows, el sistema de desarrollo de Visual C++ (incluido el editor de código fuente integrado, el depurador y las herramientas de línea de comandos) está habilitado para MBCS, con la excepción de la ventana de memoria.

La ventana de memoria no interpreta bytes de datos como caracteres MBCS, aunque puede interpretarlos como caracteres ANSI o Unicode. Los caracteres ANSI siempre tienen un tamaño de 1 byte y los caracteres Unicode tienen un tamaño de 2 bytes. Con MBCS, los caracteres pueden tener un tamaño de 1 o 2 bytes y su interpretación depende de la página de códigos que esté en uso. Por este motivo, es difícil que la ventana de memoria muestre de forma confiable los caracteres MBCS. La ventana de memoria no puede saber qué byte es el inicio de un carácter. El desarrollador puede ver los valores de bytes en la ventana de memoria y buscar el valor en las tablas para determinar la representación de caracteres. Esto es posible porque el desarrollador conoce la dirección inicial de una cadena basada en el código fuente.

Visual C++ acepta caracteres de doble byte donde sea adecuado hacerlo. Esto incluye nombres de ruta de acceso y nombres de archivo en cuadros de diálogo y entradas de texto en el editor de recursos de Visual C++ (por ejemplo, texto estático en el editor de diálogos y entradas de texto estático en el editor de iconos). Además, el preprocesador reconoce algunas directivas de doble byte, por ejemplo, nombres de archivo en instrucciones #include y como argumentos para las instrucciones code_seg y data_seg pragmas. En el editor de código fuente, se aceptan caracteres de doble byte en comentarios y literales de cadena, aunque no en elementos del lenguaje C/C++ (como nombres de variable).

Asistencia para el Editor de métodos de entrada (IME)

Las aplicaciones escritas para los mercados asiáticos orientales que usan MBCS (por ejemplo, Japón) normalmente admiten el IME de Windows para escribir caracteres de un solo y doble byte. El entorno de desarrollo de Visual C++ contiene compatibilidad completa con el IME.

Los teclados japoneses no admiten directamente los caracteres Kanji. El IME convierte una cadena fonética, escrita en uno de los otros alfabetos japoneses (Romaji, Katakana o Hiragana) en sus posibles representaciones Kanji. Si hay ambigüedad, puede seleccionar entre varias alternativas. Cuando haya seleccionado el carácter Kanji previsto, el IME pasa dos WM_CHAR mensajes a la aplicación de control.

El IME, activado por la combinación de teclas ALT+', aparece como un conjunto de botones (un indicador) y una ventana de conversión. La aplicación coloca la ventana en el punto de inserción de texto. La aplicación debe controlar los mensajes WM_MOVE y WM_SIZE al cambiar la posición de la ventana de conversión para que se ajuste a la nueva ubicación o tamaño de la ventana de destino.

Si desea que los usuarios de la aplicación tengan la capacidad de escribir caracteres Kanji, la aplicación debe controlar los mensajes IME de Windows. Para obtener más información sobre la programación de IME, vea Input Method Manager.

Depurador de Visual C++

El depurador de Visual C++ proporciona la capacidad de establecer puntos de interrupción en mensajes IME. Además, la ventana Memoria puede mostrar caracteres de doble byte.

Herramientas de línea de comandos

Las herramientas de línea de comandos de Visual C++, incluido el compilador, NMAKE y el compilador de recursos (RC.EXE), están habilitados para MBCS. Puede usar la opción /c del compilador de recursos para cambiar la página de códigos predeterminada al compilar los recursos de la aplicación.

Para cambiar la configuración regional predeterminada en tiempo de compilación del código fuente, use #pragma setlocale.

Herramientas gráficas

Las herramientas basadas en Windows de Visual C++, como Spy++ y las herramientas de edición de recursos, admiten completamente cadenas IME.

Consulte también

Compatibilidad con los juegos de caracteres multibyte (MBCS)
Sugerencias de programación para MBCS