mfc运行原理分析

MFC运行原理分析:

大家好,这里是石侃侃的博客,这篇文章介绍了我对MFC运行原理的一些理解

很多人在开始接触MFC时候因为找不到主函数而苦恼,对此我查阅了一些资料

.................................................. ..............................更新于2018.27 ................. .................................................. ........................

首先定义theApp 然后调用构造函数(构造子类先构造父类,构造父类会完成一些初始化工作),再调用_tWinMain   (_tWinMain 定义在C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\src\mfc\appmodul.cpp)  ;_tWinMain 调用 AfxWinMain  (在C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\src\mfc\winmain.cpp中定义)  ;AfxWinMain 调用InitInstance:  !pThread->InitInstance()(根据虚函数原理调用的是子类的InitInstance:  );到LoadFream注册产生显示更新窗口  然后调用 nReturnCode = pThread->Run(); 进入消息循环(C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\src\mfc\thrdcore.cpp中的CWinThread::Run)里面是一个for和while、do 循环(显示更新窗口同样有消息循环)


初始化全局对象 进入winmain 注册窗口  产生窗口  显示窗口  更新窗口   消息循环
消息映射:通过句柄找到指针
   


在这里全局对象theapp类似下面的全局变量a




#include <iostream.h>
int a = 6;
int main ()
{
cout<<a<<endl;
}


在这里输出6,是因为在main函数调用之前a已经初始化了(仅限全局变量);theapp也是一样的

猜你喜欢

转载自blog.csdn.net/zxpcus/article/details/79672496