《MFC篇》MFC文件结构
MFC文件结构(VS2015为例)
原文链接:https://blog.csdn.net/fuhanghang/article/details/109826297
在VS2015中创建完项目之后,会自动生成下面的文件结构:
包括引用、外部依赖、头文件、源文件、资源文件、ReadMe。
下面对这些文件进行分类描述:
1、和项目名称相同的有两个文件
比如说我的项目名称是MFCApplication3,则会有MFCApplication3.cpp和MFCApplication3Dlg.cpp,其中
MFC.cpp定义应用程序的类行为,即应用程序的主文件
MFCDlg.cpp为实现文件,文件内包含对话框、控件处理、消息处理等程序,该文件主要完成应用程序的可视化窗口
这个地方可以和C#项目的文件结构进行类比,C#项目创建完成之后会有两个文件,分别是Program.cs和Form1.cs。分别代表程序的入口和主窗口。其实MFCApplication3.cpp是程序的入口,MFCApplication3Dlg.cpp是程序的主窗口。入口初始化时,打开主窗口,如图所示:
2、Resource.h中存放了程序中所有符号资源的定义
如图所示:
3、stdafx.h是MFC标准包含文件,包含了一些MFC的重要头文件
stdafx.h是预编译头文件,它包含了常用的系统头文件和标准库头文件,以及一些常用的宏定义和类型定义。引用stdafx.h的主要目的是提高编译速度。预编译头文件在第一次编译时会被编译成二进制文件,下次编译时可以直接使用这个二进制文件,而不需要重新编译这些头文件,从而加快了编译速度。
注意:在使用MFC进行编程时,通常会创建一个Visual Studio项目,项目中会默认包含stdafx.h,并在主程序文件(通常是.cpp文件)的开头引用它。如果不引用stdafx.h,编译器会在编译过程中遇到预编译指令#include "stdafx.h"时报错,因为编译器无法找到相关的定义和声明。如果您不希望使用预编译头文件,可以在创建MFC项目时选择不使用预编译头文件的选项,或者通过在项目属性中进行相应的设置来取消预编译头文件的使用。但请注意,这可能会导致编译速度变慢,特别是在大型项目中。
如图所示:
4、SDKDDKVer.h 将定义可用的最高版本的 Windows 平台
如图所示:
5、资源文件夹下包括各种图标、对话框,其中常量定义都在上面提到的Resource.h中。
可以看到MFCApplication3.ico、MFCApplication3.rc、MFCApplication3.rc2。其中MFCApplication3.ico是图标文件,MFCApplication3.rc和MFCApplication3.rc2是资源文件,rc是resource的意思。rc和rc2都是资源文件,包含了应用程序中用到的所有的资源。两者不同在于:rc文件中的资源可以直接在VC集成环境中以可视化的方法进行编辑和修改;而rc2中的资源不能在VC的集成环境下直接进行编辑和修改, 而是由根据需要手工地进行编辑。RC2文件:包含项目使用的附加资源的脚本文件。可以在项目的 .rc 文件的顶部包括 .rc2 文件。.rc2 文件用于存放由多个不同项目使用的资源。不必为不同的项目多次创建相同的资源,而是可以将它们放在一个 .rc2 文件中,然后将该 .rc2 文件包括在主 .rc 文件中。