操作系统是不管什么函数的,WinMain是由CRT来调用的。
操作系统在创建进程后,把IP指向重定位后的的执行映像第一条指令就完成任务了。
各种不同的开发环境都有针对不同操作系统的启动代码,作为最终可执行映像的初始指令。

解决方案 »

  1.   

    函数只是个名字(标记)罢了,VC里面看到Winmain知道这是程序的入口地址,在链接的时候会找到该模块,把它放到可执行程序中固定的位置,保证实际执行的时候就是从它开始执行。我以为,只要是windows下的程序,不管是用什么语言做的,其文件头都是一样的(Win32程序的文件头格式我不清楚,只好照搬dos下文件头的概念),因此不同的开发语言的链接程序只要在链接的时候把程序的入口地址放到文件头中的相应记录中,就OK了。
      

  2.   

    WinMain并不是程序的真正入口点。
      

  3.   

    WinMain不是程序的真正入口点,那什么是呢?
      

  4.   

    入口点是可以由连接器任意指定的,一般地说,它需要给WinMain准备实参,并在WinMain返回后调用exit()/ExitProccess(),绝大部分程序员从来没有,也不会去写程序的真正入口函数。