Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Por qué no se puede inicializar const char* const wchar_t* en VC 2010?

¿Por qué no se puede inicializar const char* const wchar_t* en VC 2010?

Esto se debe a la diferencia entre la codificación ANSI y UNICODE

Específicamente, la codificación predeterminada de VC2010 es UNICODE, que asigna 2 bytes para cada carácter, al que llamamos carácter ancho wchar

Si comenzamos desde el lenguaje C, usamos char a para definir caracteres; esta es la versión ANSI, que asigna 1 byte para letras, números, etc. comunes, y 2 bytes para caracteres chinos. Esta es la versión ANSI. Las letras, números, etc. normales son de 1 byte y los caracteres chinos son de 2 bytes.

Solución:

En tchar.h, se define un tipo de carácter común:

Si el compilador es la versión UNICODE, el tipo TCHAR se define como wchar

Si el compilador es la versión ANSI, el tipo TCHAR se define como char<

Y muchas funciones de la biblioteca C también tienen su forma general,

Además , la macro TEXT también puede convertir constantes de cadena según la versión

Entonces, en su código, use TCHAR para definir variables de caracteres y use la macro TEXT para manejar constantes de cadena. El uso de la forma general de funciones de biblioteca puede resolver perfectamente este problema y darse cuenta de que el código fuente se puede compilar con UNICODE o ANSI.

VC6.0 en Project-Settings-C/C-Preprocessor Defina el identificador en: UNICODE, _UNICODE se puede configurar con qué codificación compilar, y luego se puede configurar con qué codificación compilar, y así sucesivamente. VC2010 Aún no lo he configurado, no sé dónde está la ubicación, debería ser similar

Ejemplo:

La plantilla del programa debería ser así:

#include lt;tchar. hgt;

TCHAR sz[50];

TCHAR *p=TEXT("string");

_tcscpy(sz, p);