首先感谢吴老师,其次感谢互联网。
对于我们IT人员来说入门一门语言或者框架,是一个非常头疼的事,因为你搞不懂他的运行原理,或者知其然,而不知其所以然。
-----------------------------------------------------------------------------------------------------------华丽的分割线------------------------------------------------------------------------------------------------
前两天我刚接触MFC的时候一直找不到他的程序入口,大家都知道所有程序都有入口C是main函数,window是WinMain函数,但是MFC我确没有找到?
当时很奇怪。
经过这两天的仔细分析他的底层框架原理,我才恍然大悟。
原来MFC的入口竟然是继承CWinApp,MFC在运行时会调用WinMain函数,而WinMain函数会去查找全程构造函数,也就是CWinApp的派生类,由于CWinApp的派生类声明了一个全局theApp变量在程序运行时,CWinApp已经被构建好了,因为他是全局变量,程序运行之前就会被构建好,如果不清楚,请看C++的一些程序运行基础,紧接着WinMain调用CWinApp的派生类的InitInstance成员函数来完成主窗口的构造和显示,所以我们必须重写InitInstance函数,在调用InitInstance函数之后继续调用Run,Run是一个隐藏函数。
在此总结程序的入口就是CWinApp的派生类
如果不对欢迎指正,谢谢,大家一起学习
以下分析截图
------------------------------------------------------------------------------------------------------------华丽的结束线------------------------------------------------------------------------------------------------