Sintomi
Si consideri lo scenario seguente:
-
Si crea un progetto Visual C++ in Microsoft Visual Studio 2008 Service Pack 1 (SP1).
-
Un file di progetto ha stretto stringhe letterali. Questi valori letterali stringa contengono caratteri asiatici e non hanno come prefisso con la lettera "L"
-
I valori letterali stringa è utilizzare la codifica UTF-8.
In questo scenario, quando si compila il progetto, i valori letterali stringa vengono interpretati in modo errate dal compilatore. Inoltre, che si verifichi uno dei seguenti problemi:
-
L'operazione di compilazione ha esito positivo. Tuttavia, non vengono visualizzate correttamente i valori letterali di stringa dell'applicazione generato. Inoltre, potrebbe essere visualizzato anche i seguenti messaggi di avviso quando si compila il progetto:
avviso C4566: carattere rappresentato dal nome di caratteri universali 'xx' non può essere rappresentato nella tabella codici corrente.
-
L'operazione di compilazione non riesce. Inoltre, che venga visualizzato il seguente messaggio di errore quando si compila il progetto:
errore C2078: troppi inizializzatori
Causa
Questo problema si verifica perché il compilatore presuppone che il file nella sezione "Sintomi" presenta una codifica MBCS. Per questo motivo, il compilerincorrectly converte il file.
Risoluzione
Informazioni sull'hotfix
Un hotfix supportato è disponibile da Microsoft. Tuttavia, questo hotfix è destinato esclusivamente alla correzione del problema descritto in questo articolo. Applicare questo hotfix solo ai sistemi in cui si verificano questo problema specifico.
Se l'hotfix è disponibile per il download, è presente una sezione "Hotfix disponibile per il download" all'inizio di questo articolo della Knowledge Base. Se non viene visualizzato in questa sezione, inviare una richiesta al servizio clienti Microsoft e supporto tecnico per ottenere l'hotfix. Nota: Se si verificano ulteriori problemi o se è necessaria attività di risoluzione aggiuntiva, potrebbe essere necessario creare una richiesta di assistenza separata. I costi di supporto normale verranno applicati per eventuali ulteriori domande e problemi che non dovessero rientrare specifico hotfix in questione. Per un elenco completo dei numeri di telefono del servizio clienti Microsoft e supporto tecnico o per creare una richiesta di assistenza separata, visitare il seguente sito Web Microsoft:http://support.microsoft.com/contactus/?ws=supportNota: Il modulo "Hotfix disponibile per il download" Visualizza le lingue per cui è disponibile l'hotfix. Se non viene visualizzata la lingua, è perché un aggiornamento rapido non è disponibile per tale lingua.
Prerequisiti
È necessario disporre di Visual Studio 2008 Service Pack 1 (SP1) per applicare questo hotfix.
Richiesta di riavvio
Non è necessario riavviare il computer dopo avere applicato questo hotfix se non viene utilizzata alcuna istanza di Visual Studio.
Informazioni sulla sostituzione dell'aggiornamento rapido
Questo hotfix non sostituisce altri aggiornamenti rapidi.
Informazioni sui file
La versione inglese di questo hotfix presenta gli attributi di file (o attributi successivi) elencati nella tabella riportata di seguito. Le date e ore dei file sono elencate in base al formato UTC (Coordinated Universal Time Coordinated). Quando si visualizzano le informazioni sul file, viene convertito in ora locale. Per calcolare la differenza tra ora UTC e ora locale, utilizzare la scheda fuso orario nell'elemento di Data e ora nel Pannello di controllo.
Nome del file |
Versione del file |
Dimensione del file |
Data |
Ora |
Piattaforma |
---|---|---|---|---|---|
C1.dll |
15.0.30729.4987 |
678,720 |
09-Mar-2010 |
10:18 |
x86 |
C1xx.dll |
15.0.30729.4987 |
2,204,488 |
09-Mar-2010 |
10:18 |
x86 |
C1xx.dll |
15.0.30729.4987 |
2,215,240 |
09-Mar-2010 |
10:18 |
x86 |
C1xx.dll |
15.0.30729.4987 |
2,339,656 |
09-Mar-2010 |
10:18 |
x86 |
C1xx.dll |
15.0.30729.4987 |
2,505,552 |
09-Mar-2010 |
10:18 |
x86 |
C1xx.dll |
15.0.30729.4987 |
2,891,592 |
09-Mar-2010 |
10:18 |
x64 |
Stato
Microsoft ha confermato che questo è un problema dei prodotti Microsoft elencati nella sezione "Si applica a".
Ulteriori informazioni
Per risolvere l'errore del compilatore, installare questo hotfix e quindi salvare il file con un contrassegno. Inoltre, aggiungere la seguente direttiva "pragma" prima che i valori letterali di stringa nel file di origine.
#pragma execution_character_set("utf-8")
Nota: La direttiva "pragma" imposta l'unità di traduzione per il file di origine fino a quando la direttiva "pragma" è sostituita da un'altra direttiva "pragma".