_tmain()是为了支持Unicode所使用的main的一个别名,既然是别名,应该有宏定义过的,在<stdafx.h>里
#include <stdio.h>
#indlude <tchar.h>
我们可以在<tchar.h>中找到_tmain()的宏定义
#define _tmain main
所以经过预编译后,_tmain就变成了main了。
main()是标准的C++的函数入口。标准C++程序入口点函数,默认字符编码格式为ANSI
函数签名为:
int main(); int main(int argc, char * argv[]);
_tmain()是Windows提供的对Unicode字符集向ANSI字符集自动转换的程序入口点函数。
函数签名为:
int _tmain(int argc, TCHAR *argv[]);
- 当你的程序当前的字符集为Unicode时,int _tmain(int argc, TCHAR *argv[])会被翻译成 int wmian(int argc, wchar_t *argv[])
- 当你的程序当前的字符集为ANSI时,int _tmain(int argc, TCHAR *argv[])会被翻译成 int mian(int argc, char *argv[])
总之,int _tmain()函数是int main()函数的一个宏定义,当我们的字符集是Unicode时就应该使用int _tmain()。
参考文献: