Visual C++ 的项目文件组成,以及如何正确的创建及管理项目。
本内容是初学者必须要掌握的。不能正确的管理项目,就不能进一步写有规模的程序。
一、项目下各种常见文件类型的功能
1. 代码文件
扩展名为 .cpp、.c、.h 等。
通常情况下,项目会由多个代码文件和头文件组成,每个文件实现不同的功能。
2. 资源文件
扩展名为 .rc 。
资源文件中定义了项目中所需的各种资源,例如图片、图标、对话框、声音等。项目中的资源引用情况均会记录在其中。有些资源会完整的记录在 .rc 里面,有些资源仅仅在 .rc 里面记录一个链接。
3. 项目管理文件
扩展名在不同版本的 VC 下有区别:VC6 为 .dsp,VC2008 / VC2010 为 .vcproj,VC2012 为 .vcxproj 。
项目管理文件管理所有代码、资源文件以及项目设置。
4. 工作区管理文件
扩展名在不同版本的 VC 下有区别:VC6 为 .dsw,VC2008 及以上版本为 .sln 。
在工作区内可以包括多个项目。
5. 编译的输出文件
默认情况下,VC 会将编译结果输出在 Debug 和 Release 文件夹下面。
二、创建项目
每个项目要有一个独立的文件夹,千万不要在同一个文件夹里面放不同项目的代码文件。
使用 VC 创建项目的时候,会自动以项目名称建立一个文件夹。具体创建项目的步骤,请参考 EasyX 官网的 Flash 演示视频。
我理解,很多初学者写的项目都只有几十行,为了几十行代码就创建一个文件夹以及一大堆于此相关的文件,似乎不值得。但是,编写代码必须使用正确的方式,同一个文件夹只能有与本项目相关的文件。
当然,如果仅仅作为小代码的保存方式,也是可以在同一个文件夹下面存放多个不同项目的代码文件的。
每次启动项目,不要双击 .cpp 文件,而要双击 .dsw 文件。这样才能让项目相关的文件都被正确关联。
三、管理项目
随着代码越写越大,项目所涉及的文件也会越来越多。这时候,将这些文件分类存放就显得很重要了。例如,可以将所有图片资源放在 res 文件夹下面等等。
对于代码的管理,建议学习下 git。
四、发布项目
项目写完以后,如果需要把最终生成的 .exe 分享给好友,需要以下步骤:
1. 使用相对路径
调整代码,确保使用相对路径加载图片或音效等资源文件。
注意,如果从 VS 中执行程序,那么当前路径为项目所在路径,而不是 exe 所在的 debug 或 release 文件夹。
2. 生成项目的 Release 版本
在 VC 顶部的工具条上可以切换编译方式是 Debug 还是 Release。发布项目的时候,需要使用 Release 版本。
VC 的编译设置有两类:Debug 和 Release。
Debug 文件夹下面的 .exe 文件,是用来调试的,里面包含多种调试信息,比较臃肿,并且使用的是调试版本的运行时库,发给别人的时候,别人通常是无法执行的。
Release 文件夹下面的 .exe 文件,是用来发布的,里面删掉了所有调试信息,比较精简,并且使用是常规的运行时库,微软提供了该运行时库的安装包,并且很多人的系统中已经安装过。所以发布项目的时候,需要使用 Release 版本。
3. 附加运行时库
使用 Release 设置编译生成的 .exe,通常需要依赖运行时库才能执行。
附加运行时库有 3 种办法(推荐使用前两种):
3-1 打包运行时库
常见的做法,是通过安装程序将运行时库与 .exe、图片、音效等打包在一起,安装的时候,由安装程序检查系统中是否存在所需的运行时库,如果不存在,就自动安装。这样,可以确保 .exe 的运行环境是完备的。
安装程序推荐用 inno setup 或 nsis setup 来制作。
关于运行时库:
VC6 编译的 Release 版本的 .exe 文件,可以单独运行在任何 windows 平台上(大于 win95 即可)。
VC2008(及更高版本)编译的 Release 版本的 .exe 文件,运行它的电脑需要安装对应版本的运行时库。电脑上一般都有安装。如果没有安装,单独装一下就好了。
几个版本的运行时库的微软官方下载地址:
- VC2008 (VC++ 9.0) 运行时库:Visual C++ 2008 运行时库 9.0.30729.5677 - AppZip
- VC2010 (VC++ 10.0) 运行时库:Visual C++ 2010 运行时库 10.0.40219.1 - AppZip
- VC2012 (VC++ 11.0) 运行时库:Visual C++ 2012 运行时库 11.0.61030.0 - AppZip
- VC2013 (VC++ 12.0) 运行时库:Visual C++ 2013 运行时库 12.0.30501.0 - AppZip
- VC2015 (VC++ 14.0) 运行时库:Visual C++ 2015 运行时库 14.0.24212.0 - AppZip
- VC2017 (VC++ 15.0) 运行时库:Visual C++ 2017 运行时库 14.16.27033.0 - AppZip
- VC2019 (VC++ 16.0) 运行时库:Visual C++ 2015-2019 运行时库 14.27.29112.0 - AppZip
3-2 打包运行时 dll
如果不想制作安装程序那么麻烦,可以将运行时库里面所需的 .dll 文件提取出来,和 .exe 放在同一个文件夹下,也是可以的。
3-3 静态链接
可以使用静态链接的形式,将需要用到的库与 .exe 链接在一起。方法:
打开项目属性对话框,选择:“Configuration Propertiees [配置属性] -> C/C++ -> Code Generation [代码生成]”,右侧将“Runtime Library [运行时库]”设置为“Multi-threaded (/MT) [多线程(/MT)]”。
这样做的缺点是:.exe 体积增大,且无法与其它程序共享运行时库的内容。
4. 考虑是否支持 Windows XP
如果希望你的程序可以运行在 WinXP 中,还需要这样设置:
打开项目属性对话框,选择:“Configuration Properties [配置属性] -> General [常规]“,”,右侧将“Platform Toolset [平台工具集]”设置为“Visual Studio 20** - Windows XP (v1**_xp)”。
全套源码素材看我:725022484
小鱼快来啊的个人空间-小鱼快来啊个人主页-哔哩哔哩视频哔哩哔哩小鱼快来啊的个人空间,提供小鱼快来啊分享的视频、音频、文章、动态、收藏等内容,关注小鱼快来啊账号,第一时间了解UP注动态。编程学习群:725022484 每天分享一个编程小游戏~C/C++游戏源码素材及各种安装包, 私信不常看!https://space.bilibili.com/1827181878?spm_id_from=333.788.0.0