MFC应用程序的生命周期(二)

本文详细介绍了MFC程序的启动过程。重点讲述了全局对象theApp的构造时机早于WinMain函数,以及通过CWinApp基类构造函数实现的运行环境初始化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1MFC的启动

MFC的封装机制隐藏了函数的执行过程,这使MFC程序不如传统的Win32程序具有清晰的运行流程,但是作为Windows程序,MFC程序也有WinMain,下面主要说MFC程序的启动过程。

创建一个单文档工程,发现里面有一个Global的文件夹,该文件夹里存放的是该工程所拥有的全局对象,此时里面拥有的全局对象只有一个既theApp。从c++的学习中可以了解到,当操作系统将程序加载并激活时,全局对象将首先获得配置,因此其构造函数将首先被执行,也即是说它比WinMain更早。

对工程类构造函数的定义,实际上是它对基类构造函数的调用,因为它自己的构造函数值是完成用户自定义的变量的初始化,而运行环境的初始化是在它的基类中完成的,它的基类是CWinApp,构造函数定义如下:

 

此函数主要是用来对线程和全局对象的初始化,同时保存theApp对象指针,这样WinMain可以通过该指针调用它的成员函数,用以初始化和执行该应用。(构造一个CWinApp对象并将lpszAppName传递给它,当作应用程序的名字保存。你必须创建一个CWinApp派生类的全局对象。在你的应用程序中只能有一个CWinApp对象。构造函数保存了执行CWinApp对象的指针,因此WinMain可以调用对象的成员函数以初始化并运行应用程序。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值