几 乎每个Windows下的C++程序员都应该知道main和WinMain,前者是控制台程序的入口函数,后者是Win32程序的入口函数。这些函数会在 静态初始化完毕后被调用,并且开始应用程序的主要工作。但是这些函数只不过是C/C++的入口函数, 而不是应用程序真正的入口函数,也就是说,操作系统装 载应用程序后,它并不是直接调用我们的main/WinMain,而是调用另一个由CRT提供的函数,由那个函数进行一些初始化工作(包括静态初始化)以 后再调用我们的入口函数。下面的表格中列出了在通常的Windows应用程序中CRT所提供的入口函数:
CRT入口函数
相应的C/C++入口函数
相应的应用程序类型
WinMainCRTStartup WinMain Win32应用程序(非Unicode)
wWinMainCRTStartup wWinMain Win32应用程序(Unicode)
mainCRTStartup Main Win32控制台程序(非Unicode)
wmainCRTStartup wmain Win32控制台程序(Unicode)