浙江省高等学校教师教育理论培训

微信搜索“毛凌志岗前心得”小程序

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

最近使用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下的部分是灰色的,因为不编译了。否则,就该上面的是灰色了。

posted on 2012-07-13 17:00  lexus  阅读(418)  评论(0编辑  收藏  举报