Condividi tramite


Supporto per MBCS in Visual C++

Quando viene eseguita in una versione abilitata per MBCS di Windows, il sistema di sviluppo di Visual C++ (incluso l'editor del codice sorgente integrato, il debugger e gli strumenti da riga di comando) è abilitato per MBCS, ad eccezione della finestra di memoria.

La finestra di memoria non interpreta i byte di dati come caratteri MBCS, anche se può interpretarli come caratteri ANSI o Unicode. I caratteri ANSI sono sempre di dimensioni pari a 1 byte e i caratteri Unicode sono di 2 byte. Con MBCS, i caratteri possono essere di dimensioni pari a 1 o 2 byte e la loro interpretazione dipende dalla tabella codici in uso. Per questo motivo, è difficile per la finestra di memoria visualizzare in modo affidabile i caratteri MBCS. La finestra di memoria non è in grado di sapere quale byte è l'inizio di un carattere. Lo sviluppatore può visualizzare i valori di byte nella finestra della memoria e cercare il valore nelle tabelle per determinare la rappresentazione di caratteri. Ciò è possibile perché lo sviluppatore conosce l'indirizzo iniziale di una stringa in base al codice sorgente.

Visual C++ accetta caratteri a byte doppio ovunque sia appropriato farlo. Sono inclusi i nomi di percorso e i nomi di file nelle finestre di dialogo e nelle voci di testo nell'editor di risorse di Visual C++, ad esempio testo statico nell'editor di finestre di dialogo e voci di testo statiche nell'editor di icone. Inoltre, il preprocessore riconosce alcune direttive a doppio byte, ad esempio i nomi di file nelle #include istruzioni e come argomenti per i code_seg pragma e data_seg . Nell'editor del codice sorgente vengono accettati caratteri a byte doppio nei commenti e nei valori letterali stringa, anche se non negli elementi del linguaggio C/C++, ad esempio nomi di variabili.

Supporto per Input Method Editor (IME)

Le applicazioni scritte per i mercati asiatici che usano MBCS (ad esempio, Giappone) supportano normalmente l'IME di Windows per l'immissione di caratteri a byte singolo e doppio. L'ambiente di sviluppo Visual C++ contiene il supporto completo per l'IME.

Le tastiere giapponesi non supportano direttamente i caratteri Kanji. L'IME converte una stringa fonetica, immessa in uno degli altri alfabeti giapponesi (Romaji, Katakana o Hiragana) nelle sue possibili rappresentazioni Kanji. In caso di ambiguità, è possibile scegliere tra diverse alternative. Dopo aver selezionato il carattere Kanji desiderato, l'IME passa due WM_CHAR messaggi all'applicazione di controllo.

L'IME, attivato dalla combinazione di tasti ALT+', viene visualizzato come un set di pulsanti (un indicatore) e una finestra di conversione. L'applicazione posiziona la finestra in corrispondenza del punto di inserimento del testo. L'applicazione deve gestire WM_MOVE i messaggi e WM_SIZE riposizionando la finestra di conversione in modo che sia conforme alla nuova posizione o alle dimensioni della finestra di destinazione.

Se si vuole che gli utenti dell'applicazione abbiano la possibilità di immettere caratteri Kanji, l'applicazione deve gestire i messaggi IME di Windows. Per altre informazioni sulla programmazione IME, vedere Input Method Manager.

Visual C++ Debugger

Il debugger di Visual C++ consente di impostare punti di interruzione nei messaggi IME. Inoltre, la finestra Memoria può visualizzare caratteri a byte doppio.

Strumenti da riga di comando

Gli strumenti da riga di comando di Visual C++, inclusi il compilatore, NMAKE e il compilatore di risorse (RC.EXE), sono abilitati per MBCS. È possibile usare l'opzione /c del compilatore di risorse per modificare la tabella codici predefinita durante la compilazione delle risorse dell'applicazione.

Per modificare le impostazioni locali predefinite in fase di compilazione del codice sorgente, usare #pragma setlocale.

Strumenti grafici

Gli strumenti basati su Windows di Visual C++, ad esempio Spy++ e gli strumenti di modifica delle risorse, supportano completamente le stringhe IME.

Vedi anche

Supporto per set di caratteri multibyte (MBCS, Multibyte Character Set)
Suggerimenti sulla programmazione MBCS