VC++学习第三章

一、MFC程序的内部结构

在VS中,没有建立MFC程序的时候,我们在普通的cpp文件中写窗口类程序,要有一系列的步骤,比如要创建winmain函数,要创建窗口类,注册窗口类等等。但是在创建一个MFC的工程的时候,我们会发现找不到winmain函数了。

但是这样一来,我们就发现,一个MFC程序,我们不知道它是从什么地方开始执行的。

其实一个MFC的程序里面也是有WinMain函数的,它是在程序的链接的时候添加进来的。在MFC库文件中的APPMOUDLE.CPP这个文件中,就会找到相应的winmain函数。可以在这里设置断点,然后运行我们刚才建立的mfc程序,就会发现,程序会先跳转到这个函数。

在调试运行的时候,你可能会看见,程序一开始进来的可能并不是winmain函数,而是一些全局变量的构造函数,这是因为,在程序执行之前,编译器要为程序中所有的全局变量进行初始化,之后再执行主程序。也就是说,一些全局变量(静态变量)都是在主程序之前进行分配内存和初始化的。


每一个MFC程序都只能由一个从cwinapp中派生出来的应用程序类,每一个这样的应用程序类都只能够实例化一个对象。实例化这个应用程序的对象就能够代表整个应用程序。


如果程序当中带有Afx前缀的函数,都是程序的框架函数,作用域的范围是全局的,因此我们可以在任意一个类中使用他。




你可能感兴趣的:(MFC)