一个MFC应用程序的生命周期
(一)程序的进入点
MFC作为Win32 API的一种封装,它的程序进入点自然是WinMain。但是,这个WinMain也被封装起来,用户是看不到的,只是在编译器进行连接时会被自动连接。
下面我们就来寻找一下MFC程序被隐藏了的WinMain。搜索MFC的源文件,可以发现MFC的WinMain定义在 appmodul.cpp中。 此文件可以在VC的MFC src文件夹中找到
extern
"
C
"
int
WINAPI
_tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
__in LPTSTR lpCmdLine,
int
nCmdShow)
...
{
// call shared/exported WinMain
return AfxWinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow);
}
这里的名字虽然是 _tWinMain但是我们使用“转到定义”菜单项跳转,会发现实际上这是一个宏:
#define _tWinMain wWinMain
作为测试我们在 VS中新建一个SDI MFC工程,起名为Test,VC会自动生成五个类
CAboutDlg CMainFrame CTestApp CTestDoc CTestView
在 appmodul.cpp中的WinMain中加入一个断点,然后运行程序。这时我们会发现程序在_tWinMain

本文深入探讨了MFC(Microsoft Foundation Classes)应用程序的初始化过程,详细解析了从启动到运行时的工作流程,涵盖化工背景下的MFC应用如何与编译器配合确保null处理和框架稳定运行的关键步骤。
最低0.47元/天 解锁文章
2020

被折叠的 条评论
为什么被折叠?



