Problembeschreibung
Betrachten Sie das folgende Szenario:
-
Erstellen Sie ein Visual C++-Projekt in Microsoft Visual Studio 2008 Service Pack 1 (SP1).
-
Eine Datei im Projekt hat schmale Zeichenfolgenliterale. Diese Zeichenfolgenliterale asiatische Zeichen enthalten und nicht mit dem Buchstaben "L" vorangestellt
-
Die Zeichenfolgenliterale verwenden UTF-8-Kodierung.
In diesem Szenario werden die Zeichenfolgenliterale beim Kompilieren des Projekts vom Compiler interpretiert. Außerdem tritt möglicherweise eines der folgenden Probleme:
-
Die Kompilierung Operation erfolgreich ist. Die Zeichenfolgenliterale werden jedoch in der generierten Anwendung falsch angezeigt. Darüber hinaus auch erhalten die folgenden Fehlermeldungen Sie beim Kompilieren des Projekts:
Warnung C4566 generiert: durch den universellen Zeichennamen 'Xx' dargestellte Zeichen kann nicht 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
Ursache
Dieses Problem tritt auf, weil der Compiler geht davon aus, dass die Datei im Abschnitt "Symptome" MBCS-Codierung. Aufgrund dieses Verhaltens übersetzt der Compilerincorrectly die Datei.
Problemlösung
Hotfix-Informationen
Ein unterstützter Hotfix ist von Microsoft erhältlich. Dieser Hotfix soll nur der Behebung des Problems dienen, das in diesem Artikel beschrieben wird. Verwenden Sie diesen Hotfix nur auf Systemen, bei denen dieses spezielle Problem auftritt.
Wenn der Hotfix zum Download zur Verfügung steht, gibt es einen Abschnitt "Hotfixdownload available" ("Hotfixdownload verfügbar"), am oberen Rand dieses Knowledge Base-Artikel. Wenn dieser Abschnitt nicht angezeigt wird, senden Sie eine Anforderung an Microsoft Customer Service and Support, um den Hotfix zu erhalten.
Hinweis Falls weitere Probleme auftreten oder andere Schritte zur Problembehandlung erforderlich sind, müssen Sie möglicherweise eine separate Serviceanfrage erstellen. Die normalen Supportkosten gelten für zusätzliche Supportfragen und Probleme, die nicht diesem speziellen Hotfix zugeordnet werden können. Für eine vollständige Liste der Telefonnummern des Microsoft Customer Service and Support, oder um eine separate Serviceanfrage zu erstellen, gehen Sie auf folgende Microsoft-Website:
http://support.microsoft.com/contactus/?ws=supportHinweis Das Formular "Hotfix download available" ("Hotfixdownload verfügbar") zeigt die Sprachen an, für die der Hotfix verfügbar ist. Wenn Ihre Sprache nicht angezeigt wird, ist dieser Hotfix für Ihre Sprache nicht verfügbar.
Voraussetzungen
Sie müssen Visual Studio 2008 Service Pack 1 (SP1) installiert, um diesen Hotfix anwenden.
Neustartanforderung
Sie müssen keinen Neustart des Computers nach der Installation dieses Hotfixes, wenn keine Instanz von Visual Studio verwendet wird.
Informationen zu ersetzten Hotfixes
Dieser Hotfix ersetzt keine anderen Hotfixes.
Dateiinformationen
Die englische Version dieses Hotfixes weist Dateiattribute (oder spätere Attribute), die in der folgenden Tabelle aufgelistet sind. Die Datums- und Uhrzeitangaben für diese Dateien sind in Coordinated Universal Time (UTC) aufgelistet. Wenn Sie die Dateiinformationen anzeigen, werden sie in die lokale Zeit konvertiert. Um die Differenz zwischen UTC und der Ortszeit zu finden, verwenden Sie die Registerkarte Zeitzone unter Datum und Uhrzeit in der Systemsteuerung.
Dateiname |
Dateiversion |
Dateigröße |
Datum |
Zeit |
Plattform |
---|---|---|---|---|---|
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 hat bestätigt, dass es sich um ein Problem bei den Microsoft-Produkten handelt, die im Abschnitt „Eigenschaften“ aufgeführt sind.
Weitere Informationen
Beheben Sie den Fehler im Compiler Hotfix installiert haben, und speichern Sie die Datei mit einer Bytereihenfolge-Markierung. Außerdem "Pragma" Direktive vor die Zeichenfolgenliterale in der Quelldatei hinzufügen.
#pragma execution_character_set("utf-8")
Hinweis Die "Pragma" Richtlinie Übersetzungseinheit Quelldatei Richtlinie "Pragma" anderen "Pragma" Richtlinie ersetzt.