Príznaky
Predstavte si nasledujúcu situáciu:
-
Vytvoríte Visual C++ projektu v Microsoft Visual Studio 2008 Service Pack 1 (SP1).
-
Projekt má úzke reťazcov. Tieto reťazcov obsahujú východoázijských jazykov a nie sú predponou písmeno "L."
-
Reťazcov použite kódovanie UTF-8.
V tejto situácii, keď kompilujete projektu reťazcov sú nesprávne kompilátor. Okrem toho sa vyskytnúť niektorý z nasledujúcich problémov:
-
Kompilácia operácia úspešná. Však reťazcov sa nesprávne zobrazujú v aplikácii vytvorené. Okrem toho môže tiež zobrazí upozorňujúce hlásenie pri zostavovaní projektu:
Upozornenie C4566: znak predstavuje univerzálne znakov názvu "xx" nemožno zobraziť v aktuálnej kódovej stránky.
-
Kompilácia zlyhá. Okrem toho môže zobraziť nasledujúce chybové hlásenie, keď kompilujete projektu:
chyba C2078: príliš veľa inicializátory
Príčina
Tento problém sa vyskytuje, pretože kompilátor sa predpokladá, že má súbor v časti "Príznaky" MBCS kódovanie. V dôsledku tohto správania compilerincorrectly prekladá súboru.
Riešenie
Informácie o rýchlej oprave
Od spoločnosti Microsoft je k dispozícii podporovaná rýchla oprava. Táto rýchla oprava je však určená iba opravu problému, ktorý je popísaný v tomto článku. Rýchlu opravu použite len v počítačoch s týmto konkrétnym problémom.
Ak je rýchla oprava k dispozícii na stiahnutie, na začiatku tohto článku databázy Knowledge Base sa nachádza časť „K díspozícii je rýchla oprava na stiahnutie“. Ak sa táto sekcia nezobrazuje, odošlite požiadavku na služby zákazníkom spoločnosti Microsoft a podporu získať rýchlu opravu.
Poznámka: Ak sa vyskytnú ďalšie problémy alebo ak je potrebné riešiť problémy, je možné, že budete musieť vytvoriť samostatnú servisnú požiadavku. Na ďalšie žiadosti o podporu a problémy, ktoré sa netýkajú tejto konkrétnej rýchlej opravy, sa vzťahujú zvyčajné poplatky za poskytnutie technickej podpory. Úplný zoznam telefónnych čísel služieb zákazníkom spoločnosti Microsoft a podpora alebo vytvoriť samostatnú servisnú požiadavku, nájdete na webovej lokalite spoločnosti Microsoft:
http://support.microsoft.com/contactus/?ws=supportPoznámka: Formulár "Prevzatie dostupnej rýchlej opravy" sa zobrazuje pre jazyky, pre ktoré je rýchla oprava k dispozícii. Ak nemôžete nájsť požadovaný jazyk, je preto rýchla oprava nie je pre tento jazyk k dispozícii.
Požiadavky
Visual Studio 2008 Service Pack 1 (SP1) nainštalované chcete použiť túto rýchlu opravu, musíte mať.
Požiadavka na reštartovanie
Nemáte na reštartovanie počítača po použití tejto rýchlej opravy, ak používa žiadne inštancie programu Visual Studio.
Informácie o nahradení rýchlej opravy
Táto rýchla oprava nenahrádza ďalšie rýchle opravy.
Informácie o súboroch
Anglická verzia tejto rýchlej opravy má atribúty súborov (alebo novšie atribúty) uvedené v nasledujúcej tabuľke. Dátumy a čas jednotlivých súborov sú uvedené vo formáte koordinovaného svetového času (UTC). Pri zobrazení informácií o súbore sa dátumy a čas prevedú na miestny čas. Ak chcete vyhľadať rozdiely medzi časom UTC a miestnym časom, použite kartu Časové pásmo v položke Dátum a čas v ovládacom paneli.
Názov súboru |
Verzia súboru |
Veľkosť súboru |
Dátum |
Čas |
Platforma |
---|---|---|---|---|---|
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 |
Stav
Spoločnosť Microsoft potvrdila, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v časti Vzťahuje sa na.
Ďalšie informácie
Chyba kompilácie vyriešite nainštalovať túto rýchlu opravu a uložte súbor s značku bajt poradí. Okrem toho pridajte nasledujúce smernice "pragma" pred reťazcov zdrojového súboru.
#pragma execution_character_set("utf-8")
Poznámka: "Pragma" smernice nastavuje preklad jednotky na zdrojový súbor nahradenia smernice "pragma" iný "pragma" smernicou.