MFC程序入口点
MFC启动非常隐晦,F10调试时,看到的入口点在APPMODULE.CPP中的_tWinMain。我所能看的书籍上都说windows程序的起点是WinMain,并没有将这件事情交待清楚。
微软为了对UNICODE进行支持,在tchar.h中做了这样的定义:
#define _tWinMain WinMain
其实真正的入口点还是WinMain,并没有改变。
虽然弄清楚了入口点,但是具体怎么调用呢?如果以动态库的形式使用MFC,那么WinMain应该在DLL中,不在EXE中,系统是如何进入WinMain的呢?实际情况是我们的APP链接了两个库,如下:
#pragma comment(lib, "mfc42.lib")
#pragma comment(lib, "mfcs42.lib")
WinMain实际上被编译到mfcs42.lib中,以静态链接库的形式,最终链接到APP的EXE中。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步