当我们用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产生的程序文件有了一个很好的了解了,剩下的就是添加自己要完成特定功能的东西了。

转载于:https://www.cnblogs.com/michaelxu/archive/2007/10/22/932594.html

Application Wizard生成的项目文件简介相关推荐

  1. MFC的Application Wizard所生成的各种文件功能

    当我们用Application Wizard生成一个新的项目时,MFC会自动为我们产生不少的程序文件,那么这些文件都是干什么用的呢? 其实生成项目完成之后,我们会在项目目录里面发现一个readme.t ...

  2. Fusion Application(FA)补丁管理工具简介

    Fusion Application(FA)补丁管理工具简介. Fapmgr是FA的补丁管理器. 调用命令如下: (UNIX) FA_ORACLE_HOME/lcm/ad/bin/fapmgr.shc ...

  3. cmake 生成vc 项目文件

    新建vc win32工程,有源码文件program1.cpp, stdafx.cpp 新建CMakeLists.txt,写入 cmake_minimum_required(VERSION 2.8) P ...

  4. 来吧学学.Net Core之项目文件简介及配置文件与IOC的使用

    序言 在当前编程语言蓬勃发展与竞争的时期,对于我们.net从业者来说,.Net Core是风头正紧,势不可挡的.芸芸口水之中,不学习使用Core,你的圈内处境或许会渐渐的被边缘化.所以我们还是抽出一点 ...

  5. Canence第5篇之用IPC-7351 LP Wizard生成PCB lib

    IPC-7351 LP Wizard 是专门生成PCB lib的第三方工具,现在已经被Menter收购并集成在PADs中了.本文介绍如何用IPC-7351 LP Wizard生成所需要的PCB lib ...

  6. python文档生成工具 sphinx 简介

    目录 简介 sphinx-build用法 Makefile选项 调用sphinx-apidoc 原文出处 简介 Sphinx是一个工具,她能够轻易地创建智慧和优雅的文档,她是出自Georg Brand ...

  7. 图文素材生成视频TTV——简介

    简介 图文素材生成视频TTV"是一种利用AI技术将图文内容转换为视频的工具.它可以帮助图文创作者和营销机构快速制作视频,提高效率和吸引力. 根据搜索结果,有几款比较流行的TTV工具,如剪映. ...

  8. clock wizard 生成VHDL例化

    最近在使用clock wizard时,发现vivado 自动生成的ip例化文件是verilog的,但是项目是vhdl,经过多方设置仍然不能生成vhdl的ip核,最后发现只需要找到生成的vhdl例化文件 ...

  9. MATLAB中用Application Complier生成可执行文件的步骤及相关注意事项

    生成可独立执行的软件,可以分成以下5个主要的步骤: 1.打开Application Complier 2.添加主程序文件 3.可执行文件设置 4.选择打包方式 5.相关文件解释 大体步骤多类似,里面有 ...

  10. matlab GUI 打包程序(Application Complier生成exe文件和App打包)

    0.写在前面 最近用MATLAB写GUI,用的是Guide,最后需要进行程序的打包,查了一些资料,打包包括exe文件打包和App打包,这里都进行一个学习记录,后面需要可以回来查阅(MATLAB版本:2 ...

最新文章

  1. python selenium 文件上传_Python Selenium通过Windows上传上传文件
  2. Tomcat内存溢出解决方案
  3. Bootstrap框架的基本使用
  4. java第一份工作_Java 学到什么程度可以找到第一份工作 ?
  5. python turtle画气球-LeetCode-python 312.戳气球
  6. android 根据版本,Android – 根据构建类型更改flavor版本名称
  7. exp4me 用java做的实用的csv导出程序 - 名传无线.freeness.yang
  8. python configparser 注释_使用configpar添加注释
  9. Gradle体验/第一篇:下装、安装、配置、体验
  10. 实验任务四:实现登陆界面
  11. MusicXML 3.0 (31) - Tab
  12. JavaScript中实现深浅拷贝
  13. IDEA安装谷歌翻译插件Translation
  14. Markdown中如何添加特殊符号
  15. Unity_EasyAR_AR大屏幕开发
  16. 解读小米模式:颠覆式创新者的背后
  17. 2.3 万 Star!直追微软 Visio,这个简洁实用的在线绘图工具必须推荐给你
  18. gojs开发环境去除水印
  19. 驱动器能耗制动和制动电阻
  20. 值班排班日历插件引入 参考

热门文章

  1. 资源调度_提前计划+实时调度,实现月台资源高效利用
  2. opencv车牌分割_OpenVINO车牌识别网络详解
  3. oracle精度说明符1~38_数据库显示精度说明符过多
  4. 二、Oracle学习笔记:常用数据类型和关键字
  5. 阶段3 1.Mybatis_07.Mybatis的连接池及事务_1 今日课程内容介绍
  6. 初始runtime(运行时机制)
  7. 【TP】TP如何向模板中的js传变量
  8. 截取一段字符串中,两个指定字符串中间的字符串
  9. c++ protected 访问限定
  10. 3) Maven 目录结构