首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

MFC的执行流程有关问题

2013-11-05 
求教:MFC的执行流程问题?本帖最后由 VisualEleven 于 2013-10-30 11:58:25 编辑看孙鑫教程对MFC流程的说明

求教:MFC的执行流程问题?
本帖最后由 VisualEleven 于 2013-10-30 11:58:25 编辑 看孙鑫教程对MFC流程的说明,我有点不理解.(假设已建了一个test的MFC单文档工程。)

视频教程上说:当程序调用了CWinApp类的构造函数,并执行了CTestApp类的构造函数,且产生了theApp对象之后,接下来就进入WinMain函数

我的问题是:
1、 怎么知道实例化的对象theApp是WinMain()之前完成的?先后次序是在哪个代码段中控制的?还是由系统控制的?
比如这样的程序流程我可以说对象实例化在main()函数前:

//某.cpp文件
class classname
{
  public :
  int a ;
  classname(){a = 10 ;}
} ;
classname Myclass ;
void Main(.....)
{.....}

但是在_tWinMain()函数的源文件APPMODUL.CPP中只有如下代码:
#include "stdafx.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern int AFXAPI AfxWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPTSTR lpCmdLine, int nCmdShow);

extern "C" int WINAPI
_tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPTSTR lpCmdLine, int nCmdShow)
{
// call shared/exported WinMain
return AfxWinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow);
}

....省略.....
虽说#include "stdafx.h"中已经包含了CWinApp等类的头文件,但并没有执行CTestApp的实例化啊

2、MFC程序首先从那个工程文件开始执行,整个MFC程序的入口点在哪个源文件?





[解决办法]
引用:
Quote: 引用:

//全局构造函数之后,调用appmodul.cpp的_tWinMain,这个是入口点

1、执行全局构造函数是从哪个源文件里最先开始执行的?,比如我建立MFC单文档工程,会出现系统给出的几个源文件如:Mfram.cpp、test.cpp、testdoc.cpp、testview.cpp等。而test.cpp里实例对象,我可以认为整个MFC是从 test.cpp开始执行的吗?
2、在appmodul.cpp中,它的预处理只包含了基类库的头文件,好像没有实例化theapp对象的语句,(也可能我没有找仔细)
3、我也没有在哪个源文件里找到执行完实例完全局对象,再转向_tWinMain()函数的语句


很简单,调试的时候,先调出_tWinMain,(如果找不到,按F10,然后终止调试)设置断点,然后在APP类构造函数设断点,按F5开始执行,你就可以看到执行顺序
[解决办法]
按所说的顺序设置断点慢慢调试

热点排行