Příznaky
Jde o takovouto situaci:
-
Vytvořte projekt Visual C++ v aplikaci Microsoft Visual Studio 2008 Service Pack 1 (SP1).
-
Soubor v projektu má úzký řetězcové literály. Tyto řetězcové literály obsahují asijské znaky a není předponou s písmenem "L."
-
Řetězcové literály použijte kódování UTF-8.
V tomto scénáři při kompilaci projektu řetězcové literály jsou chybně interpretován pomocí kompilátoru. Navíc setkáte s jedním z následujících problémů:
-
Kompilace operace úspěšná. Řetězcové literály jsou však zobrazeny nesprávně v generované aplikací. Navíc můžete také obdržet následující upozornění při kompilaci projektu:
upozornění C4566: znak reprezentován univerzální znak názvu "xx" nelze reprezentovat v aktuální znakové stránce.
-
Kompilace operace se nezdaří. Navíc může zobrazit následující chybová zpráva při kompilaci projektu:
Chyba C2078: příliš mnoho inicializátory
Příčina
K tomuto problému dochází, protože kompilátor předpokládá, že soubor v části "Příznaky" má kódování znakové sady MBCS. Z důvodu tohoto chování přeloží compilerincorrectly soubor.
Řešení
Informace o opravě hotfix
Společnost Microsoft má k dispozici podporovanou opravu hotfix. Tato oprava hotfix je však určena pouze problému popsanému v tomto článku. Použití této opravy hotfix pouze u systémů, ve kterých dochází k tomuto konkrétnímu problému.
Pokud je oprava hotfix k dispozici ke stažení, je v horní části tohoto článku znalostní báze Knowledge Base oddíl "Oprava Hotfix je dostupná ke stažení" . Pokud tento oddíl není uveden, odešlete požadavek na Microsoft Zákaznický servis a podporu k získání opravy hotfix.
Poznámka: Pokud nastanou další problémy nebo bude nutné další řešení potíží, bude možná třeba vytvořit další samostatný požadavek na služby. Běžná cena za technickou podporu se vztahuje k dodatečným otázkám podpory a k problémům, které se netýkají této konkrétní opravy hotfix. Úplný seznam telefonních čísel služeb zákazníkům společnosti Microsoft a podpoře nebo vytvořit zvláštní požadavek na službu naleznete na následujícím webu společnosti Microsoft:
http://support.microsoft.com/contactus/?ws=supportPoznámka: Ve formuláři „Oprava hotfix je dostupná ke stažení“ se zobrazují jazyky, pro které je oprava hotfix k dispozici. Pokud váš jazyk není zobrazen, to je protože oprava hotfix není k dispozici pro daný jazyk.
Předpoklady
Musíte mít Visual Studio 2008 Service Pack 1 (SP1) nainstalovat tuto opravu hotfix.
Požadavek na restartování
Nemáte k restartování počítače po instalaci této opravy hotfix Pokud žádná instance Visual Studio je používán.
Informace o nahrazení opravy hotfix
Tato oprava hotfix nenahrazuje další opravy hotfix.
Informace o souborech
Anglická verze této opravy hotfix má atributy (nebo pozdější atributy souborů) uvedené v následující tabulce. Kalendářní data a časy jednotlivých souborů jsou uvedeny v koordinovaném světovém čase (UTC). Při zobrazení informací o souboru je převeden na místní čas. Rozdíl mezi místním časem a časem UTC naleznete na kartě Časové pásmo v položce Datum a čas v okně Ovládací panely.
Název souboru |
Verze souboru |
Velikost souboru |
Datum |
Č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
Společnost Microsoft potvrdila, že se jedná o problém v produktech společnosti Microsoft, které jsou uvedeny v části "Platí pro".
Další informace
Chcete-li vyřešit tuto chybu v kompilátoru, nainstalovat tuto opravu hotfix a potom uložte soubor s značka pořadí bajtů. Kromě toho můžete přidáte následující direktivy "pragma" těsně před řetězcové literály ve zdrojovém souboru.
#pragma execution_character_set("utf-8")
Poznámka: Dokud "pragma" směrnice nahrazuje jiným "pragma" směrnice, směrnice "pragma" Nastaví jednotku překladu pro zdrojový soubor.