解决方案相关文件
解决方案相关文件包括解决方案文件夹下的 .sdf文件、.sln文件、.suo文件 和 ipch文件夹。
.sdf 文件和 ipch 目录一般占用空间比较大,几十兆甚至上百兆,与智能提示、错误提示、代码恢复和团队本地仓库等相关。如果你觉得不需要则可以设置不生成它们,方法是点击菜单栏 Tools->Options,弹出 Options 对话框,选择左侧面板中 Text Editor->C/C+±>Advanced,右侧列表中第一项Disable Database由 False 改为 True 就可以了,最后关闭 VS2010 再删除 .sdf文件和 ipch 目录以后就不会再产生了。但关闭此选项以后也会有很多不便,例如写程序时的智能提示没有了。
.sln 文件和 .suo 文件为 MFC 自动生成的解决方案文件,它包含当前解决方案中的工程信息,存储解决方案的设置。
工程相关文件
工程相关文件包括工程文件夹下的 .vcxproj文件和 .vcxproj.filters文件。
.vcxproj 文件是 MFC 生成的工程文件,它包含当前工程的设置和工程所包含的文件等信息。.vcxproj.filters 文件存放工程的虚拟目录信息,也就是在解决方案浏览器中的目录结构信息。
应用程序头文件和源文件
应用程序向导会根据应用程序的类型(单文档、多文档或基于对话框的程序)自动生成一些头文件和源文件,这些文件是工程的主体部分,用于实现主框架、文档、视图等。
HelloWorld.h
应用程序的主头文件。主要包含由 CWinAppEx 类派生的 CHelloWorldApp 类的声明,以及 CHelloWorldApp 类的全局对象 theApp 的声明。
HelloWorld.cpp
应用程序的主源文件。主要包含 CHelloWorldApp类的实现,CHelloWorldApp 类的全局对象 theApp的定义等。
MainFrm.h和MainFrm.cpp
通过这两个文件从 CFrameWndEx 类派生出 CMainFrame 类,用于创建主框架、菜单栏、工具栏和状态栏等。
HelloWorldDoc.h和HelloWorldDoc.cpp
这两个文件从 CDocument 类派生出文档类 CHelloWorldDoc,包含一些用来初始化文档、串行化(保存和装入)文档和调试的成员函数。
HelloWorldView.h和HelloWorldView.cpp
它们从 CView 类派生出名为 CHelloWorldView 的视图类,用来显示和打印文档数据,包含了一些绘图和用于调试的成员函数。
ClassView.h和ClassView.cpp
由CDockablePane 类派生出 CClassView 类,用于实现应用程序界面左侧面板上的Class View。
FileView.h和FileView.cpp
由 CDockablePane 类派生出 CFileView 类,用于实现应用程序界面左侧面板上的File View。
OutputWnd.h和OutputWnd.cpp
由 CDockablePane 类派生出 COutputWnd 类,用于实现应用程序界面下侧面板 Output。
PropertiesWnd.h和PropertiesWnd.cpp
由 CDockablePane 类派生出 CPropertiesWnd 类,用于实现应用程序界面右侧面板 Properties。
ViewTree.h和ViewTree.cpp
由 CTreeCtrl 类派生出 CViewTree 类,用于实现出现在 ClassView 和 FileView 等中的树视图。
资源文件
一般我们使用 MFC 生成窗口程序都会有对话框、图标、菜单等资源,应用程序向导会生成资源相关文件:res目录、HelloWorld.rc文件、Resource.h文件。
res目录
工程文件夹下的 res 目录中含有应用程序默认图标、工具栏使用图标等图标文件。
HelloWorld.rc
包含默认菜单定义、字符串表和加速键表,指定了默认的 About 对话框和应用程序默认图标文件等。
Resource.h
含有各种资源的 ID 定义。
预编译头文件
几乎所有的 MFC 程序的文件都要包含 afxwin.h 等文件,如果每次都编译一次则会大大减慢编译速度。
所以把常用的 MFC 头文件都放到了 stdafx.h 文件中,然后由 stdafx.cpp 包含 stdafx.h 文件,编译器对 stdafx.cpp 只编译一次,并生成编译之后的预编译头HelloWorld.pch,大大提高了编译效率。
编译链接生成文件
如果是 Debug 方式编译,则会在解决方案文件夹和工程文件夹下都生成 Debug 子文件夹,而如果是 Release 方式编译则生成 Release 子文件夹。
工程文件夹下的 Debug或Release 子文件夹中包含了编译链接时产生的中间文件,解决方案文件夹下的 Debug或Release 子文件夹中主要包含有应用程序的可执行文件。