Zie 980263voor een Microsoft Visual Studio 2008-versie van dit artikel.
Symptomen
Neem het volgende scenario:
-
U maakt een Visual C++-project in Microsoft Visual Studio 2010.
-
Een bestand in het project initialiseert smalle letterlijke. Deze letterlijke Aziatische tekens bevatten en niet worden voorafgegaan door de letter 'l '.
-
Het bestand is opgeslagen met UTF-8-codering.
In dit scenario is wanneer u het project compileert de letterlijke tekenreeksen zijn onjuist geïnterpreteerd door de compiler. Bovendien ondervinden de volgende problemen:
-
Wanneer het bestand bevat een byte order mark (BOM), slaagt de bewerking compileren. Echter, de letterlijke tekenreeks worden nog steeds onjuist weergegeven in de gegenereerde toepassing. Bovendien verschijnt de volgende waarschuwing weergegeven wanneer u het project compileert:
Waarschuwing C4566: Teken wordt vertegenwoordigd door universal character naam 'xx' kan niet worden weergegeven in de huidige pagina.
-
De compilatie is mislukt. Bovendien verschijnt het volgende foutbericht weergegeven wanneer u het project compileert:
Fout C2078: Te veel begin
-
De compilatie is mislukt. Bovendien verschijnt de volgende waarschuwing weergegeven wanneer u het project compileert:
Waarschuwing C4129: 'character': niet-herkende tekens escape-reeks.
Oorzaak
Dit probleem treedt op omdat de compiler wordt ervan uitgegaan dat de letterlijke waarden in het bestand kunnen worden geïnterpreteerd als de voorloopbyte van MBCS-in plaats van enkel-byte Unicode-codering. Vanwege dit probleem de compiler onjuist geconverteerd door het bestand.
Oplossing
U lost dit probleem op door deze hotfix op de computer waarop u het project compileert. Vervolgens slaat u het bestand met een byte order mark en voeg de volgende instructie "pragma" net vóór de letterlijke tekenreeks toe in het bronbestand:
#pragma execution_character_set("utf-8")
Opmerking Bij deze richtlijn "pragma" wordt de eenheid van vertaling voor het bronbestand totdat deze richtlijn "pragma" wordt vervangen door een andere "pragma"-richtlijn.
Meer informatie over deze hotfix.
Informatie over de hotfix
Een ondersteunde hotfix is nu beschikbaar bij Microsoft. Het is echter bedoeld om alleen het probleem dat wordt beschreven in dit artikel. Pas deze alleen toe op systemen waarop dit specifieke probleem zich voordoet. Deze hotfix moet wellicht extra worden getest. Als u geen ernstige problemen ondervindt, is het daarom raadzaam te wachten op de volgende waarin deze hotfix is opgenomen. U lost dit probleem meteen contact op met Microsoft Customer Support Services om de hotfix te verkrijgen. Een volledige lijst met telefoonnummers van Microsoft Customer Support Services en informatie over kosten van ondersteuning vindt u op de volgende Microsoft-website:
http://support.microsoft.com/contactus/?ws=supportOpmerking In speciale gevallen kunnen kosten die normaal gesproken verbonden zijn aan ondersteuningsoproepen, worden geannuleerd als een medewerker van Microsoft Product Support Services van mening is dat een specifieke update de oplossing van uw probleem is. De normale ondersteuningskosten blijven gelden voor extra ondersteuningsvragen die niet in aanmerking komen voor de specifieke update.
Speciale vereisten
U moet Microsoft Visual Studio 2010 is geïnstalleerd om deze hotfix te kunnen hebben.
Opstartinformatie
U hoeft de computer niet opnieuw op te starten nadat u deze hotfix hebt toegepast.
Bestandsgegevens
De Engelse versie van deze hotfix heeft de bestandskenmerken (of recentere bestandskenmerken) die in de volgende tabel worden weergegeven. De datums en tijden voor deze bestanden worden weergegeven in Coordinated Universal Time (UTC). Wanneer u de bestandsinformatie weergeeft, wordt deze naar lokale tijd geconverteerd. Om het verschil tussen UTC en lokale tijd op te zoeken, gebruikt u het tabblad tijdzone in het onderdeel datum en tijd in het Configuratiescherm.
Bestandsnaam |
Bestandsversie |
Bestandsgrootte |
Datum |
Tijd |
Platform |
---|---|---|---|---|---|
C1.dll |
16.0.30319.351 |
658,240 |
23-Aug-2010 |
06:45 |
x86 |
C1.dll |
16.0.30319.351 |
723,776 |
23-Aug-2010 |
06:45 |
x86 |
C1.dll |
16.0.30319.351 |
899,400 |
23-Aug-2010 |
06:45 |
x86 |
C1xx.dll |
16.0.30319.351 |
2,286,920 |
23-Aug-2010 |
06:45 |
x86 |
C1xx.dll |
16.0.30319.351 |
2,428,232 |
23-Aug-2010 |
06:45 |
x86 |
C1xx.dll |
16.0.30319.351 |
2,659,664 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
201,032 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
202,568 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
219,976 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
221,000 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
290,632 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
291,656 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
292,680 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
293,704 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
408,392 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
408,904 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
450,376 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
460,104 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
460,616 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
478,024 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
478,536 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
483,656 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
484,168 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
486,728 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
487,240 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
491,848 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
492,360 |
23-Aug-2010 |
06:45 |
x86 |
Status
Microsoft heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.