Freigeben über


/Zc:wchar_t (wchar_t ist der native Typ)

Analysieren Sie wchar_t als integrierten Typ entsprechend dem C++-Standard.

Syntax

/Zc:wchar_t[-]

Hinweise

Wenn /Zc:wchar_t aktiviert ist, wchar_t ist ein Schlüsselwort für einen integrierten integralen Typ in Code, der als C++ kompiliert wurde. Wenn /Zc:wchar_t - (mit einem Minuszeichen) angegeben oder im Code, der als C kompiliert wurde, wchar_t kein integrierter Typ ist. wchar_t Ist stattdessen als ein typedef Element unsigned short für die kanonische Kopfzeile "stddef.h" definiert. (Die Microsoft-Implementierung definiert sie in einem anderen Header, der von stddef.h und anderen Standardheadern enthalten ist.)

"/Zc:wchar_t" wird nicht empfohlen , da der C++-Standard einen integrierten Typ erfordert wchar_t . Die Verwendung der typedef-Version kann Portabilitätsprobleme verursachen. Wenn Sie ein Upgrade von früheren Versionen von Visual Studio durchführen und auf den Compilerfehler C2664 stoßen, da der Code versucht, einen unsigned shortwchar_t Code implizit in zu konvertieren, wird empfohlen, den Code so zu ändern, dass der Fehler behoben wird, anstatt "/Zc:wchar_t-" festzulegen.

Die Option "/Zc:wchar_t " ist in C++-Kompilierungen standardmäßig aktiviert und wird in C-Kompilierungen ignoriert. Die Option "/permissive" wirkt sich nicht auf /Zc:wchar_t aus.

Microsoft implementiert wchar_t als 2-Byte-Wert ohne Vorzeichen. Er wird dem microsoftspezifischen nativen Typ __wchar_tzugeordnet. Weitere Informationen finden wchar_tSie unter Datentypbereiche und Grundlegende Typen.

Wenn Sie neuen Code schreiben, der mit älterem Code interoperieren muss, der weiterhin die typedef Version verwendetwchar_t, können Sie Überladungen sowohl für die als __wchar_t auch für Variationen unsigned short bereitstellenwchar_t, sodass Ihr Code mit codekompiliert mit /Zc:wchar_t oder code kompiliert werden kann. Andernfalls müssen Sie zwei verschiedene Builds der Bibliothek bereitstellen, eine mit und eine ohne "/Zc:wchar_t aktiviert". 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 wird, werden _WCHAR_T_DEFINED und _NATIVE_WCHAR_T_DEFINED Symbole definiert. Weitere Informationen finden Sie unter Predefined Macros.

Wenn Ihr Code die globalen COM-Compilerfunktionen verwendet, da /Zc:wchar_t jetzt standardmäßig aktiviert ist, empfehlen wir, explizite Verweise auf comsupp.lib (entweder aus dem Kommentar pragma oder in der Befehlszeile) in "comsuppw.lib" oder "comsuppwd.lib" zu ändern. (Wenn Sie mit /Zc:wchar_t-kompilieren müssen, verwenden Sie comsupp.lib.) Wenn Sie die Headerdatei "comdef.h" einschließen, wird die richtige Bibliothek für Sie angegeben. Informationen zur COM-Unterstützung für Compiler finden Sie unter Compiler-COM-Unterstützung.

Der wchar_t integrierte Typ wird beim Kompilieren von C-Code nicht unterstützt. Weitere Informationen zu Konformitätsproblemen mit Visual C++ finden Sie unter "Nicht standardmäßiges Verhalten".

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

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Weitere Informationen erhalten Sie unter Set C++ compiler and build properties in Visual Studio (Festlegen der Compiler- und Buildeigenschaften (C++) in Visual Studio).

  2. Wählen Sie die Seite "Konfigurationseigenschaften>C/C++->Sprache" aus.

  3. Ändern Sie die "Treat wchar_t as Built-in Type "-Eigenschaft.

So legen Sie diese Compileroption programmgesteuert fest

Siehe auch

/Zc (Übereinstimmung)