一个Windows程序如何运行

1,Shell调用CreateProcess激活程序,系统产生一个核心对象,计数值为1。


2,系统为此进程建立一个4GB的地址空间。


3,加载器将必要的码加载到上述地址空间中,包括程序,资料,以及动态链接库。需要加载的DLL库文件在可执行文件PE的.idate section中记录。


4,系统为此进程建立一个执行线程,称为主执行线程。


5,系统调用C runtime函数库的Startup  code。Startup code调用程序的WinMain函数。App程序开始运行。


6,使用者关闭App主窗口,使winMain中的消息循环结束掉,于是WinMain结束。


7,回到Startup code。回到系统,系统调用ExitProcess结束进程。

你可能感兴趣的:(一个Windows程序如何运行)