Symptomen
Overweeg het volgende scenario:
-
U maakt een Visual C++-project in Microsoft Visual Studio 2008 Service Pack 1 (SP1).
-
Een bestand in het project heeft smalle letterlijke tekenreeksen. Deze letterlijke Aziatische tekens bevatten en niet worden voorafgegaan door de letter 'l '.
-
De letterlijke tekenreeks gebruikt 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:
-
De compilatie-bewerking is geslaagd. De letterlijke tekenreeks worden echter niet goed weergegeven in de gegenereerde toepassing. Bovendien wordt u ook de volgende waarschuwing weergegeven wanneer u het project compileert:
C4566 waarschuwing: 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
Oorzaak
Dit probleem treedt op omdat de compiler wordt ervan uitgegaan dat het bestand in de sectie 'Symptomen' MBCS-codering. Hierdoor wordt de compilerincorrectly het bestand.
Oplossing
Informatie over de hotfix
Een ondersteunde hotfix is beschikbaar bij Microsoft. Deze hotfix is echter alleen bedoeld voor het probleem dat wordt beschreven in dit artikel. Voer deze hotfix alleen uit op systemen waarop dit specifieke probleem zich voordoet.
Als de hotfix gedownload kan worden, is er een sectie 'Hotfix downloaden' aan het begin van dit Knowledge Base-artikel. Als deze sectie niet wordt weergegeven, dien dan een verzoek in bij Microsoft Customer Service and Support om de hotfix te verkrijgen.
Opmerking Als er andere problemen optreden of als probleemoplossing is vereist, moet u wellicht een apart serviceverzoek indienen. De normale ondersteuningskosten gelden voor extra ondersteuningsvragen en problemen die niet in aanmerking komen voor deze specifieke hotfix. Voor een volledige lijst met telefoonnummers van Microsoft Customer Service and Support of een afzonderlijk serviceverzoek maken, gaat u naar de volgende Microsoft-website:
http://support.microsoft.com/contactus/?ws=supportOpmerking Het formulier 'Hotfix kan worden gedownload' geeft de talen weer waarvoor de hotfix beschikbaar is. Als uw taal niet wordt weergegeven, is dit omdat een hotfix niet voor die taal beschikbaar is.
Vereisten
U kunt Visual Studio 2008 Service Pack 1 (SP1) geïnstalleerd om deze hotfix moet hebben.
Opnieuw opstarten
U beschikt niet over de computer opnieuw opstarten nadat u deze hotfix hebt toegepast, als er geen exemplaar van Visual Studio wordt gebruikt.
Informatie over het vervangen van hotfixes
Deze hotfix worden geen andere hotfixes vervangen.
Bestandsinformatie
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 |
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 |
Status
Microsoft heeft bevestigd dat dit probleem kan optreden in de Microsoft-producten die worden vermeld in de sectie 'Van toepassing op'.
Meer informatie
Deze hotfix installeren om de fout in de compiler verhelpen, en sla het bestand met een byte order mark. Ook de volgende richtlijn "pragma" net vóór de letterlijke tekenreeks toevoegen in het bronbestand.
#pragma execution_character_set("utf-8")
Opmerking De richtlijn "pragma" stelt de eenheid van vertaling voor het bronbestand totdat de richtlijn "pragma" wordt vervangen door een andere "pragma"-richtlijn.