Soy nuevo en la codificación C++, proveniente de Java y C# de fondo. Estoy sorprendido por la proliferación de términos #define empezando por la más básica:¿Por qué hay una macro que define _tmain?
#define _tmain wmain
Cuando supe por primera vez hace más de un puñado de edades C, la función principal era:
int main(int argc, char *argv[])
En el Visual C++ proyecto que he creado, que hizo que la función principal:
int _tmain(int argc, _TCHAR* argv[])
me pregunto por qué tenía que haber una traducción de nombres de wmain
a _tmain
? ¿Por qué no utilizar el prototipo de función C main
original?
En general, parece haber una gran cantidad de #define cambiando el nombre de algo que parece bastante claro para empezar, a algo que se ve más misterioso y menos claro (me refiero a wmain
a _tmain
??).
Gracias por tolerar lo que puede ser una pregunta muy obvia.
Eso es algo específico de Windows, no tiene nada que ver con Standard C++ (ni C). Ellos (en Microsoft) tienen una mala costumbre de esquemas de nombres horribles y complicar las cosas innecesariamente. –
Érase una vez, alguien pensó que esta era una buena idea para ayudar a las personas a migrar desde versiones anteriores de Windows usando char a más nuevo una vez que usaran wchar_t. ¡No lo era, y ahora solo confunde a la gente! –
Relacionados: http://stackoverflow.com/questions/234365/is-tchar-still-relevant – dan04