vc+MFC框架的程序从何处开始执行(程序的入口)?

解决方案 »

  1.   

    VC有一个WinMain函数,就是程序的入口了。
      

  2.   

    CWinApp这个类是MFC应用程序执行的入口;一般都是用这个类派生一个对话框应用程序类,或者单文档应用程序类。接着最先执行这个初始化函数:InitInstance();
      

  3.   

    以下是我学习《MFC深入浅出》的心得(绝对准确)
    1.构造全局对象theApp,这就意味着首先要调用CWinApp的构造函数。
    2.执行afxWinMain(……)。
    3.在afxWinMain中主要执行下面的步骤:
       a.CWinApp *pApp = AfxGetApp();
       b.AfxWinInit(……);
       c.pApp->InitApplication();
       d.pApp->InitInstance();
       e.nReturnCode = pApp->Run();//此处进入消息循环
       f.AfxWunTerm();//Run返回后结束程序;
       g.afxWinMain结束
    好到这里我们已经看到了程序的入口点,不过前面部分(1、2 、3.a、3.b)全部是由MFC自动完成的。一般情况下我们不对CWinApp的InitApplication进行重载,所以这部分也不是我们想要的入口。然后再往下,就到了InitInstance,这个CWinApp的虚函数我们必须重载(也就是我们在AppWizard生成的程序中C××App类中见到的那个)。到这里程序入口点就明朗了,对我们而言这儿就是程序最早的入口点。(C××App::InitInstance()).对于对话框的程序应该是(C××Dlg::InitDialog()).然后……(还有很多,不过你可能不想再听我唠叨了,我也就不写了。)