📄 chap3_2.htm
字号:
<html>
<head>
<title>3.2 AppWizard所创建的文件</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>
<body link="#3973DE" alink="#3973DE">
<font SIZE="5"><b><div align="center"><center>
<table border="0" width="615" cellspacing="0" cellpadding="0">
<tr>
</b><td><div align="center"><center><table border="0" width="615" cellpadding="0" cellspacing="0" height="20">
<tr>
<td width="377" bgcolor="#15397D" height="20"></td>
<td width="238" bgcolor="#000000" height="20"><p align="right"></font><span style="text-decoration: none"><a href="../../index.htm"><font color="#FFFFFF">电脑报Visual
C++网络教程</font></a></span></td>
</tr>
</table>
</center></div><font FACE="Times New Roman" SIZE="4"><b><p ALIGN="CENTER"></b></font><font color="#3973DE" FACE="Times New Roman" SIZE="4">3.2 AppWizard</font><font SIZE="4" color="#3973DE">所创建的文件</font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY">AppWizard</font><font SIZE="3">在读者指定的</font><font FACE="Times New Roman" SIZE="3">C:\Hello</font><font SIZE="3">目录下创建了许多文件,这些文件包含了框架程序的所有的类、全局变量的声明和定义。初学者面对这一大堆文件可能会不知所措。现在我们把各个文件的作用及对应的类介绍一下。</font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">根据可选项,</font><font FACE="Times New Roman" SIZE="3">AppWizard</font><font SIZE="3">所创建的文件会略有不同。标准的</font><font FACE="Times New Roman" SIZE="3">AppWizard</font><font SIZE="3">文件包括:</font><font FACE="Times New Roman" SIZE="3"></p>
<ul>
<li><font SIZE="3"><p ALIGN="JUSTIFY"></font><font SIZE="3">工作区文件、项目文件和</font></font><font FACE="Times New Roman" SIZE="3">make</font><font SIZE="3"><font SIZE="3">文件</font><font FACE="Times New Roman" SIZE="3"></p>
</font></li>
<li><font SIZE="3"><p ALIGN="JUSTIFY">应用程序源文件和头文件</font><font FACE="Times New Roman" SIZE="3"></p>
</font></li>
<li><font SIZE="3"><p ALIGN="JUSTIFY">资源文件</font><font FACE="Times New Roman" SIZE="3"></p>
</font></li>
<li><font SIZE="3"><p ALIGN="JUSTIFY">预编译头文件</font><font FACE="Times New Roman" SIZE="3"></p>
</font></li>
<li><font SIZE="3"><p ALIGN="JUSTIFY">按可选项增加的</font></font><font FACE="Times New Roman" SIZE="3">AppWizard</font><font SIZE="3"><font SIZE="3">文件</font><font FACE="Times New Roman" SIZE="3"></p>
</font></li>
</ul>
<p><b> </font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY"></font></b><font color="#3973DE" FACE="Times New Roman" SIZE="3">3.2.1 </font><font color="#3973DE"><font SIZE="3">工作区、项目文件和</font><font FACE="Times New Roman" SIZE="3">make</font><font SIZE="3">文件</font></font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY">Hello.dsw</p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">这是</font><font FACE="Times New Roman" SIZE="3">MFC</font><font SIZE="3">自动生成的工作区文件,它包含当前工作区所包含的项目的信息。</font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY">Hello.dsp</p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">这是</font><font FACE="Times New Roman" SIZE="3">MFC</font><font SIZE="3">生成的项目文件,它包含当前项目的设置、所包含的文件等信息。</font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY">Hello.MAK</p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">这是</font><font FACE="Times New Roman" SIZE="3">MFC</font><font SIZE="3">项目的项目文件,这也是与</font><font FACE="Times New Roman" SIZE="3">NMAKE</font><font SIZE="3">兼容的文件。如果选择了</font><font FACE="Times New Roman" SIZE="3">External make</font><font SIZE="3">文件可选项,则可人工对它编辑,但不能利用</font><font FACE="Times New Roman" SIZE="3">Visual C++</font><font SIZE="3">许多项目编辑特性。</font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY">Hello.CLW</p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">这个文件含有被</font><font FACE="Times New Roman" SIZE="3">ClassWizard</font><font SIZE="3">用来编辑现有类或增加新类的信息。</font><font FACE="Times New Roman" SIZE="3">ClassWizard</font><font SIZE="3">还用这个文件来保存创建和编辑消息映射和对话框数据所需的信息,或是创建虚拟成员函数所需的信息。</font><font FACE="Times New Roman" SIZE="3"></p>
<b><p ALIGN="JUSTIFY"></b></font><font color="#3973DE" FACE="Times New Roman" SIZE="3">3.2.2
</font><font SIZE="3" color="#3973DE">应用程序源文件和头文件</font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">根据应用程序的类型—单文档、多文档或基于对话框的,</font><font FACE="Times New Roman" SIZE="3">AppWizard</font><font SIZE="3">将创建下述应用程序源文件和头文件中的某些文件。在本例中,</font><font FACE="Times New Roman" SIZE="3">AppWizard</font><font SIZE="3">生成了如下文件:</font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY">Hello.h</p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">这是应用程序的主头文件,它含有所有全局符号和用于包含其它头文件的</font><font FACE="Times New Roman" SIZE="3">#include</font><font SIZE="3">伪指令。</font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY">Hello.CPP</p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">这个文件是应用程序的主源文件。它将创建</font><font FACE="Times New Roman" SIZE="3">CHelloApp</font><font SIZE="3">类的一个对象(从</font><font FACE="Times New Roman" SIZE="3">CWinApp</font><font SIZE="3">派生),并覆盖</font><font FACE="Times New Roman" SIZE="3">InitInstance</font><font SIZE="3">成员函数。</font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY">MainFrm.cpp</font><font SIZE="3">,</font><font FACE="Times New Roman" SIZE="3">MainFrm.h</p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">这两个文件将从</font><font FACE="Times New Roman" SIZE="3">CFrameWnd(SDI</font><font SIZE="3">应用程序</font><font FACE="Times New Roman" SIZE="3">)</font><font SIZE="3">或</font><font FACE="Times New Roman" SIZE="3">CMDIFrameWnd(MDI</font><font SIZE="3">应用程序</font><font FACE="Times New Roman" SIZE="3">)</font><font SIZE="3">派生</font><font FACE="Times New Roman" SIZE="3">CMainFrame</font><font SIZE="3">类。如果在</font><font FACE="Times New Roman" SIZE="3">AppWizard</font><font SIZE="3">的</font><font FACE="Times New Roman" SIZE="3">Application Options</font><font SIZE="3">页(</font><font FACE="Times New Roman" SIZE="3">6</font><font SIZE="3">步中的第</font><font FACE="Times New Roman" SIZE="3">4</font><font SIZE="3">步)中选择了对应的可选项的话,</font><font FACE="Times New Roman" SIZE="3">CMainFrame</font><font SIZE="3">类将处理工具条按钮和状态条的创建。</font><font FACE="Times New Roman" SIZE="3">MAINFRM.CPP</font><font SIZE="3">文件还含有</font><font FACE="Times New Roman" SIZE="3">MFC</font><font SIZE="3">应用程序提供的默认工具条按钮的对象</font><font FACE="Times New Roman" SIZE="3">ID</font><font SIZE="3">——叫做</font><font FACE="Times New Roman" SIZE="3">buttons</font><font SIZE="3">数组。</font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY">HelloDoc.cpp</font><font SIZE="3">,</font><font FACE="Times New Roman" SIZE="3">HelloDoc.h</p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">这些文件从</font><font FACE="Times New Roman" SIZE="3">CDocument</font><font SIZE="3">类派生并实现名为</font><font FACE="Times New Roman" SIZE="3">CHelloDoc</font><font SIZE="3">的文档类,并含有用于初始化文档、串行化(保存和装入)文档和用于调试诊断的一些成员函数的框架。</font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY">HelloView.cpp</font><font SIZE="3">,</font><font FACE="Times New Roman" SIZE="3">HelloView.h</p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">这些文件派生并实现名为</font><font FACE="Times New Roman" SIZE="3">CHelloView</font><font SIZE="3">的视类,用于显示和打印文档数据。</font><font FACE="Times New Roman" SIZE="3">CHelloView</font><font SIZE="3">类是从</font><font FACE="Times New Roman" SIZE="3">CView</font><font SIZE="3">或它的派生类派生出来的,含有绘制视和用于调试诊断的一些成员函数框架。</font><font FACE="Times New Roman" SIZE="3"></p>
<b><p ALIGN="JUSTIFY"></b></font><font color="#3973DE" FACE="Times New Roman" SIZE="3">3.2.3
</font><font SIZE="3" color="#3973DE">资源文件</font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY">AppWizard</font><font SIZE="3">会创建一些与资源相关的文件。</font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY">Hello.RC</font><font SIZE="3">,</font><font FACE="Times New Roman" SIZE="3">RESOURCE.H</font><font SIZE="3">,</font><font FACE="Times New Roman" SIZE="3">Hello.rc2</p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">这是项目的头文件及其资源文件。资源文件含有一般</font><font FACE="Times New Roman" SIZE="3">MFC</font><font SIZE="3">应用程序的默认菜单定义和加速键表、字符串表。它还指定了缺省的</font><font FACE="Times New Roman" SIZE="3">About</font><font SIZE="3">对话框和一个图标文件(</font><font FACE="Times New Roman" SIZE="3">RES\Hello. ICO</font><font SIZE="3">)。资源文件了标准的</font><font FACE="Times New Roman" SIZE="3">MFC</font><font SIZE="3">类的资源。如果指定了支持工具条,它还将指定工具条位图文件(</font><font FACE="Times New Roman" SIZE="3">RES\TOOLBAR.BMP</font><font SIZE="3">)。</font><font FACE="Times New Roman" SIZE="3">Hello.rc2</font><font SIZE="3">用于存放</font><font FACE="Times New Roman" SIZE="3">Visual Studio</font><font SIZE="3">不可直接编辑的资源。</font><font FACE="Times New Roman" SIZE="3"></p>
<b><p ALIGN="JUSTIFY"></b></font><font color="#3973DE" FACE="Times New Roman" SIZE="3">3.2.4
</font><font color="#3973DE"><font SIZE="3">预编译头文件:</font><font FACE="Times New Roman" SIZE="3">STDAFX.CPP</font><font SIZE="3">,</font></font><font color="#3973DE" FACE="Times New Roman" SIZE="3">STDAFX.H</font><font FACE="Times New Roman" SIZE="3"></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">这两个文件用于建立一个预编译的头文件</font><font FACE="Times New Roman" SIZE="3">Hello.PCH</font><font SIZE="3">和一个预定义的类型文件</font><font FACE="Times New Roman" SIZE="3">STDAFX.OBJ</font><font SIZE="3">。由于</font><font FACE="Times New Roman" SIZE="3">MFC</font><font SIZE="3">体系结构非常大,包含许多头文件,如果每次都编译的话比较费时。因此,我们把常用的</font><font FACE="Times New Roman" SIZE="3">MFC</font><font SIZE="3">头文件都放在</font><font FACE="Times New Roman" SIZE="3">stdafx.h</font><font SIZE="3">中,如</font><font FACE="Times New Roman" SIZE="3">afxwin.h</font><font SIZE="3">、</font><font FACE="Times New Roman" SIZE="3">afxext.h</font><font SIZE="3">、</font><font FACE="Times New Roman" SIZE="3">afxdisp.h</font><font SIZE="3">、</font><font FACE="Times New Roman" SIZE="3">afxcmn.h</font><font SIZE="3">等,然后让</font><font FACE="Times New Roman" SIZE="3">stdafx.cpp</font><font SIZE="3">包含这个</font><font FACE="Times New Roman" SIZE="3">stdafx.h</font><font SIZE="3">文件。这样,由于编译器可以识别哪些文件已经编译过,所以</font><font FACE="Times New Roman" SIZE="3">stdafx.cpp</font><font SIZE="3">就只编译一次,并生成所谓的预编译头文件</font><font FACE="Times New Roman" SIZE="3">(</font><font SIZE="3">因为它存放的是头文件编译后的信息,故名</font><font FACE="Times New Roman" SIZE="3">)</font><font SIZE="3">。如果读者以后在编程时不想让有些</font><font FACE="Times New Roman" SIZE="3">MFC</font><font SIZE="3">头文件每次都被编译,也可以将它加入到</font><font FACE="Times New Roman" SIZE="3">stdafx.h</font><font SIZE="3">中。采用预编译头文件可以加速编译过程。</font><font FACE="Times New Roman" SIZE="4"><b></p>
</b></font><div align="center"><center><table border="0" cellpadding="0" cellspacing="0" width="615">
<tr>
<td><a href="chap3_1.htm">上一页</a></td>
<td><p align="right"><a href="chap3_3.htm">下一页</a></td>
</tr>
</table>
</center></div><font SIZE="5"><hr noshade color="#3973DE" size="1">
<p align="center"></font><font size="2" color="#000000">本教程由<a href="http://vcdynasty.yeah.net">Visual C++王朝(Where programmers come together)</a>协助制作<br>
未经许可,请勿以任何形式复制</font></td>
<b>
</tr>
</table>
</center></div>
<p ALIGN="CENTER"></b><font SIZE="5"> </font><font FACE="Times New Roman" SIZE="5"></p>
</font><font FACE="Times New Roman" SIZE="3">
<p></font><b><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
</font></b>
<p><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
<p></font> </p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -