MFC的代码是从哪里开始的?
来源:互联网 发布:淘宝官方网 编辑:程序博客网 时间:2024/04/28 03:19
Win32程序是从WinMain开始执行的,但是MFC把WinMain给封装了,不会出现在你的代码里面,他已经编译到mfc80.dll了(VS2005)了。
在MFC中的执行顺序是这样的,首先Windows调用WinMain函数,WinMain里面调用AfxWinMain函数,注意你的代码现在来了,AfxWinMain函数调用对应你程序的APP类(这个类是基于CWinApp的,CWinApp又是基于CWinThread的)的InitInstance函数,如果InitInstance返回TRUE,就调用CWinThread的Run函数,这个函数你可以重载,但是一般不重载。在Run函数里面是Windows的消息循环,就是Win API编程里面的那个while循环以及TranslateMessage和DipatchMessage,当然MFC弄得比较复杂,有一个PumpMessage的机制。
当程序收到WM_QUIT消息之后,Run函数返回,紧接着CWinThread::ExitInstance会被调用,如果你重载了ExitInstrance则会调用你的。最后程序结束。
如果InitInstance返回FALSE,那么Run函数就不会执行,直接调用ExitInstance,然后程序结束。
你最早可以调试的地方要么是你App的构造函数,不过一般从InitInstrance开始。
MFC是没有主函数滴~机制和底层算法是不一样的~MFC执行的时候首先会初始化窗体和控件~然后进入消息队列~跟你你发送的不同消息去执行不同的操作~
从CXXApp的InitInstance函数开始执行的,比如你的工程名叫Test,一定会有个CTestApp的类,该类派生自CWinApp类。
MFC没有main的,一般是看C...View这个类的实现文件中会增加很多消息响应函数,也就是On开头的函数实现开始看就行了,如果难找的话,直接在Resources栏里看界面,双击控件就可以找到代码。
- MFC的代码是从哪里开始的?
- 天空是从哪里开始的
- SIGABRT 是从哪里来的
- 网站设计师是从哪里入手的?
- WordPress代码和分析-页面模板是从哪里来的
- WordPress代码和分析-页面模板是从哪里来的
- WordPress代码和分析-页面模板是从哪里来的(这是一个可以让人奔溃的设计)
- 人的梦想是从哪里来的?
- 从freeRTOS谈malloc内存是哪里来的?
- request.getHeader("Referer")中的Referer是从哪里来的?
- xxtea加密算法-忘记是从哪里看到的了
- top 命令显示 CPU 的信息是从哪里获取?
- 你觉得机会是从哪里来的呢
- linux中fork--子进程是从哪里开始运行
- linux中fork--子进程是从哪里开始运行
- linux中fork--子进程是从哪里开始运行
- 为什么数组是从0开始的
- 我将从哪里开始?
- VS2010如何做WAP开发
- c#编程-求圆的周长与面积
- ios开发之倒计时实现的两种方法
- linux---rsync(2)
- 编译型 解释型
- MFC的代码是从哪里开始的?
- 腾讯技术分享实录:游戏后台开发九问
- 你的应用与Solaris 11兼容吗?
- 奈奎斯特三大准则和香农定律
- 单例模式
- FreeBSD 8下如何最有效率的安装软件
- 《JAVA与模式》之抽象工厂模式
- 关于数据库多字段匹配问题
- IOS系列——适配问题