Simptome
Să luăm în considerare următorul scenariu:
-
Creați un proiect Visual C++ în Microsoft Visual Studio 2008 Service Pack 1 (SP1).
-
Un fișier în proiect are literali îngust șir. Aceste literali string conține caractere asiatice și nu sunt ca prefix cu litera "L."
-
Literali string codificarea UTF-8.
În acest scenariu, când se compilează project, literali string sunt greșit de compilator. În plus, întâlniți una dintre următoarele probleme:
-
Operațiunea de compilare se efectuează cu succes. Cu toate acestea, literali string sunt afișate incorect în aplicația generat. În plus, este posibil să primiți, de asemenea, următoarele mesaje de avertizare când se compilează proiect:
Avertisment C4566: caractere reprezentate de universal-caracter-name 'xx' nu poate fi reprezentată în pagina de coduri curentă.
-
Operațiunea de compilare nu reușește. În plus, este posibil să primiți următorul mesaj de eroare atunci când compila proiect:
eroare C2078: prea multe initializers
Cauza
Această problemă apare deoarece compilator presupune că fișierul în secţiunea "Simptome" are MBCS codificarea. Din cauza acestui comportament, compilerincorrectly traduce fișierul.
Rezolvare
Informații despre remedierea rapidă
O remediere rapidă compatibilă este disponibilă de la Microsoft. Cu toate acestea, această remediere rapidă este destinată pentru a corecta doar problema descrisă în acest articol. Aplicați această remediere rapidă numai pentru sistemele care întâmpină această problemă anume.
Dacă remedierea rapidă este disponibilă pentru descărcare, există o secțiune "Descărcare remediere rapidă disponibilă" în partea de sus a acestui articol din baza de cunoștințe. Dacă nu apare această secţiune, trimite o solicitare de la serviciul pentru clienți Microsoft de asistență pentru a obţine remedierea rapidă.
Notă Dacă se produc probleme suplimentare sau este necesară depanarea, poate fi necesar să creați o solicitare de asistenţă separată. Costurile de obicei pentru suport se vor aplica pentru sprijin suplimentar, întrebări și probleme care nu sunt specifice pentru această remediere rapidă . Pentru o listă completă cu numerele de telefon ale clienților servicii și asistență Microsoft sau pentru a crea o solicitare de asistenţă separată, vizitați următorul site Web Microsoft:
http://support.microsoft.com/contactus/?ws=supportNotă Formularul "Descărcare remediere rapidă disponibilă" afişează limbile pentru care este disponibilă remedierea rapidă. Dacă nu vedeți limba dvs., înseamnă că o remediere rapidă nu este disponibilă pentru respectiva limbă.
Cerințe preliminare
Trebuie să aveți Visual Studio 2008 Service Pack 1 (SP1) instalate pentru a aplica această remediere rapidă.
Cerinţă de repornire
Nu trebuie să reporniți computerul după aplicarea acestei remedieri rapide, dacă se utilizează nici o instanță a Visual Studio.
Informații despre înlocuirea remedierilor rapide
Această remediere rapidă nu înlocuiește alte remedieri rapide.
Informații despre fișier
Versiunea în limba engleză a acestei remedieri rapide are atributele de fişier (sau atribute de fişier mai recente) enumerate în următorul tabel. Datele şi orele acestor fişiere sunt exprimate în listă în ora universală (UTC). Când vizualizaţi informaţiile despre fișier, acesta este convertit la ora locală. Pentru a găsi diferenţa dintre UTC şi ora locală, utilizaţi fila Fusul orar în elementul de Data şi ora în Panoul de Control.
Nume de fișier |
Versiune fișier |
Dimensiune fișier |
Data |
Ora |
Platformă |
---|---|---|---|---|---|
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 |
Stare
Microsoft a confirmat că aceasta este o problemă cu produsele Microsoft enumerate în secţiunea „Se aplică la".
Mai multe informații
Pentru a rezolva eroarea compilator, instalați această remediere rapidă și apoi salvați fișierul împreună cu un semn de octeți ordine. În plus, adăugați următoarea directivă "pragma" chiar înainte de literali string în fişierul sursă.
#pragma execution_character_set("utf-8")
Notă Directivă "pragma" Setează unitatea de traducere pentru fişierul sursă până când Directiva "pragma" este înlocuită de o altă directivă "pragma".