一个MFC应用程序的生命周期
(一)程序的进入点
MFC作为Win32 API的一种封装,它的程序进入点自然是WinMain。但是,这个WinMain也被封装起来,用户是看不到的,只是在编译器进行连接时会被自动连接。
下面我们就来寻找一下MFC程序被隐藏了的WinMain。搜索MFC的源文件,可以发现MFC的WinMain定义在 appmodul.cpp中。 此文件可以在VC的MFC src文件夹中找到









这里的名字虽然是 _tWinMain但是我们使用“转到定义”菜单项跳转,会发现实际上这是一个宏:
#define _tWinMain wWinMain
作为测试我们在 VS中新建一个SDI MFC工程,起名为Test,VC会自动生成五个类
CAboutDlg CMainFrame CTestApp CTestDoc CTestView
在 appmodul.cpp中的WinMain中加入一个断点,然后运行程序。这时我们会发现程序在_tWinMain的断点停住,说明_tWinMain正是MFC程序包裹之下的WinMain
(二) Win