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中。

原文地址:https://www.cnblogs.com/licb/p/2723966.html