最近使用Visual Studio 2008 发现 入口函数为_tmain,google一下,得解:
1.main是C程序的函数,_tmain是main为了支持unicode所使用的main的別名
2._tmain的定义在<tchar.h>可以找到,如#define _tmain main,所以要加#include <tchar.h>才能用。
_tmain()是个宏,如果是UNICODE则他是wmain()否则他是main()
3.因此_tmain compile后仍为main,所以都可以执行
main()是WINDOWS的控制台程序(32BIT)或DOS程序(16BIT),
WinMain()是WINDOWS的GUI程序,
wmain()是UNICODE版本的main(),
_tmain()是个宏,如果是UNICODE则他是wmain()否则他是main()
_tWinmain()是个宏,如果是UNICODE则他是wWinmain()否则他是WinMain();
另外,wmain也是main的另一個别名,是为了支持二个字节的语言环境
main是控制台程序的入口;
winMain是win32 Application程序的入口;
_t是为了UNICDOE的兼容。
_tmain的定义可以通过go to definition找到,有一个条件编译
#ifdef _UNICODE
。。。这部分编译
#else
。。。这部分不编译
因为默认的VS2008中的是支持_UNICODE的,所以程序中#else下的部分是灰色的,因为不编译了。否则,就该上面的是灰色了。