最近在跟踪一个标准的MDI程序的启动和退出,跟踪结果如下:KERNEL32! 7c8123e5()//??????????????????????WinMainCRTStartup() line 274 + 15 bytes//?????????????????????_initterm(void (void)* * 0x00417208 $S218, void (void)* * 0x0041730c ___xc_z) line 525//????????$E217() + 29 bytes//????????????????CMDIApp theApp;//全局变量WinMain(HINSTANCE__ * 0x00400000, HINSTANCE__ * 0x00000000, char * 0x001420bd, int 1) line 30//主函数WinMainCRTStartup() line 330 + 54 bytes//?????????/KERNEL32! 7c8123e5()//?????????请高手解释一下//?????????????部分,谢谢!

解决方案 »

  1.   

    我想知道一个标准的MDI的启动和退出的步骤和原理.
      

  2.   

    想知道一个标准的MDI的启动和退出的步骤和原理
    不用这么复杂吧,网上有很多的MFC框架解析什么的,可以看一看。
      

  3.   

    上面的步骤还没到MFC框架中来,只是所有windows程序都要经过的标准启动步骤,全局变量和静态变量的初始化在这里处理的。后续处理你应该从InitInstance开始跟踪
      

  4.   

    这个我知道,我就是想知道全局变量theApp创建之前和theApp销毁之后发生了什么事?
      

  5.   

    这个是VC编译的程序的启动步骤,是VC的都这么干,BC的就不一样了你既然能把调用栈给列出来,就知道怎么去调出相关的代码来想知道这个需要对PE格式有一定了解系统首先把程序装在进来,找到程序的入口(PE前头中指定了)
    程序入口作些基本工作,然后就调用WinMainCRTStartup,然后就是你看到的了