现在的位置: 首页 > 综合 > 正文

Application Wizard生成的项目文件简介

2012年10月26日 ⁄ 综合 ⁄ 共 1901字 ⁄ 字号 评论关闭
  当我们用Application Wizard生成一个新的项目时,MFC会自动为我们产生不少的程序文件,那么这些文件都是干什么用的呢?在这里,我把它们向大家介绍一下,希望对一些初学VC的朋友有些帮助,老鸟们就不用浪费时间了,呵呵!

其实生成项目完成之后,我们会在项目目录里面发现一个readme.txt文件,项目所生成的程序文件在这里都有介绍,不过一般都是英文的。Application Wizard产生项目的同时,也展现了MFC机制为我们打下的程序框架,更为我们提供了用以扩展的程序。

依据不同的选项,产生的文件也有所不同,以下是Application Wizard产生的标准程序文件(假设项目名称为ExMFC),大致可以分为以下几类:

·         工作区文件、项目文件和make文件

·         应用程序源文件和头文件

·         资源文件

·         预编译头文件

·         按可选项增加的AppWizard文件

工作区、项目文件和make文件

ExMFC.dsp — 这是MFC生成的项目文件,它包含当前项目的设置、所包含的文件等信息。

ExMFC.dsw — 这是MFC自动生成的工作区文件,它包含当前工作区所包含的项目的信息。

ExMFC.MAK — 这是MFC项目的项目文件,这也是与NMAKE兼容的文件。如果选择了External make文件可选项,则可人工对它编辑,但不能利用Visual C++许多项目编辑特性。

ExMFC.clw — 这个文件含有被ClassWizard用来编辑现有类或增加新类的信息。ClassWizard还用这个文件来保存创建和编辑消息映射和对话框数据所需的信息,或是创建虚拟成员函数所需的信息。

应用程序源文件和头文件

ExMFC.h — 这是应用程序的主头文件,它含有所有全局符号和用于包含其它头文件的#include伪指令。

ExMFC.cpp — 这个文件是应用程序的主源文件。它将创建CExMFCApp类的一个对象(从CWinApp派生),并覆盖InitInstance成员函数。

MainFrm.h,MainFrm.cpp — 这两个文件将从CFrameWnd(SDI应用程序)或CMDIFrameWnd(MDI应用程序)派生CMainFrame类。如果在AppWizard的Application Options页(6步中的第4步)中选择了对应的可选项的话,CMainFrame类将处理工具条按钮和状态条的创建。MAINFRM.CPP文件还含有MFC应用程序提供的默认工具条按钮的对象ID——叫做buttons数组。

ExMFCDoc.h,ExMFCDoc.cpp — 这些文件从CDocument类派生并实现名为CExMFCDoc的文档类,并含有用于初始化文档、串行化(保存和装入)文档和用于调试诊断的一些成员函数的框架。

ExMFCView.h,ExMFCView.cpp — 这些文件派生并实现名为CExMFCView的视类,用于显示和打印文档数据。CHelloView类是从CView或它的派生类派生出来的,含有绘制视和用于调试诊断的一些成员函数框架。

资源文件

ExMFC.rc, Resource.h, ExMFC.rc2 —这是项目的头文件及其资源文件。资源文件含有一般MFC应用程序的默认菜单定义和加速键表、字符串表。它还指定了缺省的About对话框和一个图标文件(res"ExMFC.ico)。资源文件了标准的MFC类的资源。如果指定了支持工具条,它还将指定工具条位图文件(RES"TOOLBAR.BMP)。ExMFC.rc2用于存放Visual Studio不可直接编辑的资源。

预编译头文件:STDAFX.CPP,STDAFX.H

这两个文件用于建立一个预编译的头文件ExMFC.PCH和一个预定义的类型文件STDAFX.OBJ。由于MFC体系结构非常大,包含许多头文件,如果每次都编译的话比较费时。因此,我们把常用的MFC头文件都放在stdafx.h中,如afxwin.h、afxext.h、afxdisp.h、afxcmn.h等,然后让stdafx.cpp包含这个stdafx.h文件。这样,由于编译器可以识别哪些文件已经编译过,所以stdafx.cpp就只编译一次,并生成所谓的预编译头文件(因为它存放的是头文件编译后的信息,故名)。如果读者以后在编程时不想让有些MFC头文件每次都被编译,也可以将它加入到stdafx.h中。采用预编译头文件可以加速编译过程。

好了,到现在你可能对AppWizard产生的程序文件有了一个很好的了解了,剩下的就是添加自己要完成特定功能的东西了。

抱歉!评论已关闭.