-- 我们走得太远,忘掉了来时路。
MFC程序的main在哪里?
MFC的main是_tWinMain(),有的版本是WinMain(),AfxWinMain(),总之会有Main字样。
作为C/C++的程序员,开始看一个程序的时候,都会寻找main函数,这是约定的程序开始执行的地方。就像我们人生的起点,别人想了解你的时候,都会首先问你:老家在哪里?
编写MFC程序的时候,你会发现,没有main了!!实际上MFC为了设计者方便,把main隐藏起来,从main开始执行的时候,夹带了很多MFC的私货,把有用没用的东西启动了一大堆,让你用起来很方便,上手很容易。那么MFC的main究竟在哪里?
现在以MFC在VS2013环境下的一个程序开始,看看main在哪里。(VS2013有点古董了)
生成一个最简单的对话框程序,操作如下:
看一下自动生成的类结构:
App类是应用程序可以开始修改的地方,InitInstance变成了可修改的起点。
在::InitInstance()之前MFC干了什么事情?可以通过查看调用堆栈的方法来获取;操作步骤如下:
Step1:先设置运行的断点;再启动运行程序,
Step2:在调用堆栈里面,双击前面的语句
Step3:可以看到MFC的起点是_tWinMain() , 然后是AfxWinMain()。
如果不是特别的需要,不要修改appmodul.cpp文件!!!!!!!!!!
可以理清一下调用的顺序如下:
关键点:调用堆栈方法寻找代码调用者。