Freigeben über


/Zc:wchar_t (wchar_t ist der systemeigene Typ)

Analysieren Sie wchar_t als integrierten Typ entsprechend dem C++-Standard. Standardmäßig ist /Zc:wchar_t aktiviert.

/Zc:wchar_t[-]

Hinweise

Wenn /Zc:wchar_t aktiviert ist, erfolgt eine Zuordnung zwischen wchar_t und dem Microsoft-spezifischen systemeigenen Typ __wchar_t. Wenn /Zc:wchar_t- (mit einem Minuszeichen) angegeben wird, erfolgt eine Zuordnung zwischen wchar_t und einer typedef für unsigned short. (In Visual C++ 6.0 und früher wurde wchar_t nicht als integrierter Typ implementiert, sondern in wchar.h als typedef für unsigned short deklariert.) Es wird davon abgeraten, /Zc:wchar_t- zu verwenden, da gemäß C++-Standard wchar_t ein integrierter Typ sein muss. Die Verwendung der typedef-Version kann Portabilitätsprobleme verursachen. Wenn Sie ein Upgrade von früheren Visual C++-Versionen durchführen und der Compilerfehler C2664 auftritt, da der Code versucht, wchar_t implizit in unsigned short zu konvertieren, empfiehlt es sich, den Fehler durch eine Codeänderung zu beheben anstatt durch die Einstellung /Zc:wchar_t-.

Microsoft implementiert wchar_t als 2-Byte-Wert ohne Vorzeichen. Weitere Informationen zu wchar_t finden Sie unter Datentypbereiche und Grundlegende Typen (C++).

Wenn Sie neuen Code schreiben, der mit älterem Code zusammenwirken muss, und Letzterer noch die typedef-Version von wchar_t verwendet, können Sie Überladungen für die Varianten unsigned short und __wchar_t von wchar_t bereitstellen. So kann der neue Code gleichermaßen mit Code verknüpft werden, der mit oder ohne /Zc:wchar_t kompiliert wurde. Gleichzeitig entfällt die Notwendigkeit, zwei verschiedene Builds der Bibliothek bereitzustellen (eines mit aktiviertem /Zc:wchar_t und eines ohne). Allerdings wird in beiden Fällen empfohlen, den älteren und den neuen Code mit demselben Compiler zu erstellen. Kombinieren Sie niemals die Binärdateien, die mit unterschiedlichen Compilern erstellt wurden.

Wenn /Zc:wchar_t angegeben ist, werden die Symbole _WCHAR_T_DEFINED und _NATIVE_WCHAR_T_DEFINED definiert. Weitere Informationen finden Sie unter Vordefinierte Makros.

Wenn der Code aufgrund der standardmäßigen Aktivierung von /Zc:wchar_t die globalen COM-Funktionen des Compilers verwendet, empfiehlt es sich, explizite Verweise auf comsupp.lib – vom Kommentarpragma oder von der Befehlszeile aus – in Verweise auf comsuppw.lib oder zu comsuppwd.lib zu ändern. (Wenn Sie mit /Zc:wchar_t- kompilieren müssen, verwenden Sie comsupp.lib.) Wenn Sie die comdef.h-Headerdatei einschließen, wird die richtige Bibliothek für Sie angegeben. Weitere Informationen zur COM-Unterstützung des Compilers finden Sie unter COM-Unterstützung des Compilers.

Der Typ wchar_t wird nicht unterstützt, wenn Sie C-Code kompilieren. Weitere Informationen über Konformitätsprobleme mit Visual C++ finden Sie unter Nicht dem Standard entsprechendes Verhalten.

So legen Sie diese Compileroption in der Visual Studio-Entwicklungsumgebung fest

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Ausführliche Informationen finden Sie unter Arbeiten mit Projekteigenschaften.

  2. Erweitern Sie im linken Bereich die Struktur Konfigurationseigenschaften, C/C++ und wählen Sie dann Sprache aus.

  3. Ändern Sie die Eigenschaft WChar_t als integrierten Typ behandeln.

So legen Sie diese Compileroption programmgesteuert fest

Siehe auch

Referenz

/Zc (Übereinstimmung)