Compartir a través de


/Zc:wchar_t (wchar_t es un tipo nativo)

Analice wchar_t como un tipo integrado conforme al estándar de C++. La opción /Zc:wchar_t está activada de manera predeterminada.

/Zc:wchar_t[-]

Comentarios

Si /Zc:wchar_t está activado, wchar_t se asigna al tipo nativo especifico de Microsoft __wchar_t. Si se especifica /Zc:wchar_t- (con un signo menos), wchar_t se asigna a una definición typedef de unsigned short. (En Visual C++ 6.0 y versiones anteriores, wchar_t no se implementaba como un tipo integrado, pero se declaraba en wchar.h como una declaración typedef de unsigned short). No se recomienda usar /Zc:wchar_t-, ya que el estándar de C++ requiere que wchar_t sea un tipo integrado. Si usa la versión de typedef, pueden producirse problemas de portabilidad. Si actualiza desde versiones anteriores de Visual C++ y encuentra un error del compilador C2664 porque el código intenta convertir implícitamente un tipo wchar_t en unsigned short, es recomendable cambiar el código para corregir el error en lugar de establecer /Zc:wchar_t-.

Microsoft implementa wchar_t como un valor sin signo de dos bytes. Para obtener más información acerca de wchar_t, vea Intervalos de tipos de datos y Tipos fundamentales (C++).

Si escribe código nuevo que tiene que interoperar con un código anterior que sigue utilizando la versión typedef de wchar_t, puede proporcionar sobrecargas para las dos variantes unsigned short y __wchar_t de wchar_t, de modo que el código pueda vincularse con el código compilado mediante /Zc:wchar_t o el código compilado sin él. De lo contrario, tendría que proporcionar dos compilaciones distintas de la biblioteca: una con /Zc:wchar_t habilitado y otra sin él. Incluso en este caso, se recomienda compilar el código antiguo mediante el mismo compilador que se utiliza para compilar el código nuevo. Nunca mezcle archivos binarios compilados con compiladores diferentes.

Cuando se especifica /Zc:wchar_t, se definen los símbolos _WCHAR_T_DEFINED y _NATIVE_WCHAR_T_DEFINED. Para obtener más información, vea Macros predefinidas.

Si el código usa las funciones globales COM del compilador, dado que /Zc:wchar_t ahora está habilitado de forma predeterminada, se recomienda cambiar las referencias explícitas a comsupp.lib (de pragma comment o línea de comandos a omsuppw.lib o comsuppwd.lib). (Si debe compilar con /Zc:wchar_t-, utilice comsupp.lib). Si incluye el archivo de encabezado comdef.h, se especificará automáticamente la biblioteca correcta. Para obtener información sobre la compatibilidad con COM del compilador, vea Compatibilidad con COM del compilador.

El tipo wchar_t no se admite cuando se compila código de C. Para obtener más información sobre los problemas de conformidad con Visual C++, vea Comportamiento no estándar.

Para establecer esta opción del compilador en el entorno de desarrollo de Visual Studio

  1. Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para obtener información detallada, vea Trabajar con configuraciones de proyecto.

  2. En el panel de la izquierda, expanda Propiedades de configuración, C/C++ y, a continuación, seleccione Lenguaje.

  3. Modifique la propiedad Tratar wchar_t como tipo integrado.

Para establecer esta opción del compilador mediante programación

Vea también

Referencia

/Zc (Ajuste)