Eine Microsoft Visual Studio 2008-Version dieses Artikels finden Sie unter 980263.
Problembeschreibung
Stellen Sie sich folgendes Szenario vor:
-
Erstellen Sie ein Visual C++-Projekt in Microsoft Visual Studio 2010.
-
Eine Datei im Projekt initialisiert schmale Zeichenfolgenliterale. Diese Zeichenfolgenliterale asiatische Zeichen enthalten und nicht mit dem Buchstaben "L" vorangestellt
-
Die Datei wurde mit UTF-8-Kodierung gespeichert.
In diesem Szenario werden die Zeichenfolgenliterale beim Kompilieren des Projekts vom Compiler interpretiert. Außerdem tritt möglicherweise eines der folgenden Probleme:
-
Wenn die Datei einer Byte Order Mark (BOM) erfolgreich kompilieren Vorgang. Die Zeichenfolgenliterale werden in der generierten Anwendung jedoch weiterhin falsch angezeigt. Außerdem erhalten Sie die folgende Warnung angezeigt, wenn Sie das Projekt kompilieren:
Warnung C4566: generiert Durch den universellen Zeichennamen 'Xx' dargestellte Zeichen kann in der aktuellen Codepage dargestellt werden.
-
Die Kompilierung schlägt fehl. Außerdem erhalten Sie folgende Fehlermeldung, wenn Sie das Projekt kompilieren:
C2078 generiert Fehler: Zu viele Initialisierer
-
Die Kompilierung schlägt fehl. Außerdem erhalten Sie die folgende Warnung angezeigt, wenn Sie das Projekt kompilieren:
Warnung C4129 generiert: 'Zeichen': nicht erkannte Escapesequenz.
Ursache
Dieses Problem tritt auf, weil der Compiler davon aus, dass Literale in der Datei als führendes Byte der MBCS anstelle von Single-Byte-Unicode-Codierung interpretiert werden konnte. Aufgrund dieses Problems übersetzt der Compiler fälschlicherweise die Datei.
Lösung
Zum Beheben dieses Problems wenden Sie dieses Hotfix auf dem Computer, auf dem Sie das Projekt kompilieren. Anschließend speichern Sie die Datei mit einer Bytereihenfolge-Markierung, und fügen Sie "Pragma" Direktive vor die Zeichenfolgenliterale in der Quelldatei:
#pragma execution_character_set("utf-8")
Hinweis Diese "Pragma" Richtlinie Übersetzungseinheit Quelldatei bis dieser Richtlinie "Pragma" anderen "Pragma" Richtlinie ersetzt.
Weitere Informationen zu diesem Update
Informationen zum Hotfix
Ein unterstützter Hotfix ist inzwischen von Microsoft erhältlich. Es soll jedoch nur das Problem beheben, das in diesem Artikel beschrieben wird. Wenden Sie es nur auf Systeme an, bei denen dieses spezielle Problem auftritt. Dieser Hotfix wird möglicherweise noch getestet. Wenn Ihr System durch dieses Problem nicht schwerwiegend beeinträchtigt ist, empfehlen wir, die nächste warten, das diesen Hotfix enthält. Wenn dieses Problem sofort beheben möchten, wenden Sie sich an Microsoft Support Services, um den Hotfix zu erhalten. Eine vollständige Liste der Telefonnummern des Microsoft Product Support Services und Informationen zu den Supportkosten finden Sie auf folgender Microsoft-Website:
http://support.microsoft.com/contactus/?ws=supportHinweis In bestimmten Fällen können Gebühren, die normalerweise für Support-Anrufe anfallen abgebrochen werden, wenn ein Microsoft-Supportmitarbeiter feststellt, dass ein bestimmtes Update Ihr Problem behebt. Die normalen Supportkosten gilt für zusätzliche Supportfragen und Probleme, die nicht für das betreffende Update qualifizieren.
Voraussetzungen
Sie müssen Microsoft Visual Studio 2010 installiert, um diesen Hotfix anwenden.
Informationen zum Neustart
Sie müssen keinen Neustart des Computers nach der Installation dieses Hotfixes durchführen.
Dateiinformationen
Die englische Version dieses Hotfixes weist die in der nachstehenden Tabelle aufgelisteten Dateiattribute (oder höher) auf. Datums- und Uhrzeitangaben für diese Dateien sind in der "Universal Time Coordinated" (UTC) angegeben. Wenn Sie die Dateiinformationen anzeigen, werden diese Angaben in die Ortszeit umgewandelt. Den Unterschied zwischen UTC- und Ortszeit können Sie in der Systemsteuerung unter Datum und Uhrzeit mithilfe der Angaben auf der Registerkarte Zeitzone ermitteln.
Dateiname |
Dateiversion |
Dateigröße |
Datum |
Uhrzeit |
Plattform |
---|---|---|---|---|---|
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 hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.