MFC的WinMain在哪呢

探讨MFC应用程序中WinMain()函数的隐藏位置及调用机制,解析全局对象theApp的构造与运行时环境如何自动调用WinMain()。

Win32应用程序的入口是WinMain(),而在MFC中却找不到WinMain函数,这个家伙究竟去了哪里了呢?

在MFC中最开始的操作往往是这样的:

先定义一个全局的theApp,比如CWinTestApp theApp;这一步会调用到CWinTestApp的构造函数;

而后实际上会调到WinMain()函数,只不过这个过程是runtime去调用的,我们看不到罢了.

百度上的观点,批判地去思考:

https://zhidao.baidu.com/question/198100429.html

WinMain()跟main()函数一样,是用run time自己调用的。C++程序启动的顺序是这样的:
1. 构造全局对象。在MFC程序里,theApp就是全局对象。因为theApp的类型是CTestApp,所以CTestApp的构造函数会被调用
2. 调用main()或者WinMain()。如果是MFC程序,会默认提供一个WinMain()函数的实现,你不需要自己另外写。如果你自己另外写一个WinMain(),会引起Link Error。
以上两步都是C++ Run Time做的,不需要你自己写什么代码。你可以认为C++就是这么规定的。
补充:
是,有代码去调用它。但是这些代码不需要你来写,对你来讲也没有什么意义。这些代码属于runtime

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CodingLife99

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

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

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

打赏作者

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

抵扣说明:

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

余额充值