2010-06-01 12 views
7

¿Cuáles son las diversas diferencias entre los dos símbolos TCHAR y _TCHAR tipo definidos en el encabezado de Windows tchar.h? Explica con ejemplos. Describa brevemente los escenarios donde usaría TCHAR en lugar de _TCHAR en su código. (10 puntos)Diferenciar entre TCHAR y _TCHAR

+3

¿Por qué su pregunta parece una tarea? ¿No puedes tomarte el tiempo para reformular tu examen y hacer que suene más personal? –

+6

De hecho, me tomé un tiempo extra y me salí de mi camino para que pareciera tarea. Cansado de ver todas estas pequeñas idiosincrasias en los encabezados de Windows sin rima o razón. –

+1

'tchar.h' no es parte del SDK de Windows, pero es parte de Microsoft CRT ... –

Respuesta

7

han encontrado su respuesta aquí:

MSDN Forums >> Visual Studio Developer Center >> TCHAR vs _TCHAR

TCHAR y _TCHAR son idénticos, aunque desde TCHAR no tiene un subrayado inicial , Microsoft no se les permite reservada como una palabra clave (imagínese si tiene una variable llamada TCHAR. Piense en qué ocurriría ). Por lo tanto, TCHAR no estará # definido cuando Extensiones de idioma estén deshabilitadas (/ Za).

TCHAR se define en winnt.h (que obtendrá cuando #include ), y también tchar.h en/Ze. _TCHAR está disponible solo en tchar.h (que también # define _TSCHAR y _TUCHAR). Esas son variantes sin firmar/firmadas del tipo de datos TCHAR normal.

9

Además de lo que dijo @RussC, TCHAR es utilizado por la API de Win32 y se basa en la UNICODE definen, mientras que _TCHAR es utilizado por el tiempo de ejecución C y se basa en la _UNICODE definen en su lugar. UNICODE y _UNICODE generalmente se definen/omiten juntos, haciendo que TCHAR y _TCHAR sean intercambiables, pero eso no es un requisito. Están semánticamente separados para ser utilizados por diferentes marcos.

Cuestiones relacionadas