windows 下程序的执行原理

在windows os下,资源管理器就如同linux下的shell,它是包围在操作系统核心周围的一个应用程序。其实在linux系统下的gui,也是通过调用shell命令来实现其基本功能的,只不过是在shell上面又包装了一件“华丽的外衣”,让用户操作起来更加方便而已了。

    资源管理器作为用户和操作系统之间的一个中介,大大方便了用户的操作,用户在图形界面下在资源管理器中进行操作,然后资源管理器向操作系统核心发送相关的消息来完成操作。

   当用户执行一个C/C++的exe程序时,用户双击该exe文件,资源管理器接受到该操作的消息以后,根据后缀为exe就可以判断你是想执行该程序,于是就调用加载器,将exe文件中的二进制文件加载到内存中。 然后调用C startup code, 对于C的可执行程序来说,C startup code就是main函数( int main (int argc, char *argv[])), 对C++类的可执行程序来说,其C startup code是在链接阶段由链接器加入到了exe的特定部分,我们在代码里面是看不到的了,所以对于C++ 的可执行程序来说,是由操作系统调用其链接器加入的那个C startup code,然后在C startup code中调用C++的入口函数WinMain来开始执行程序的,WinMain的四个参数是由os传递进来的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

walkingmanc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值