当前位置: 首页 > news >正文

初学者必读:讲解 VC 下如何正确的创建、管理及发布项目

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

http://www.lryc.cn/news/3102.html

相关文章:

  • 剑指offer(中等)
  • 微软发布会精华回顾:“台式电脑”抢了风头
  • CF1561C Deep Down Below 题解
  • 秒杀项目之服务调用分布式session
  • 聊聊什么是架构,你理解对了吗?
  • java多线程开发
  • 杂记7--opencv的ar码模块学习
  • [项目设计]高并发内存池
  • 28岁才转行软件测试,目前32了,我的一些经历跟感受
  • Python导入模块的3种方式
  • select 与 where、order by、limit 子句执行优先级比较
  • Linux内核并发与竞争-原子操作
  • Java笔记-泛型的使用
  • 特斯拉无人驾驶解读
  • 生物素-琥珀酰亚胺酯Biotin-NHS;CAS号:35013-72-0;可对溶液中的抗体,蛋白质和任何其他含伯胺的大分子进行简单有效的生物素标记。
  • Maven_第五章 核心概念
  • 【深度学习】人脸识别工程化落地
  • AOP面向切面编程思想。
  • 实验7-变治技术及动态规划初步
  • JVM垃圾回收机制GC理解
  • C++中的容器
  • 2023备战金三银四,Python自动化软件测试面试宝典合集(五)
  • SpringDI自动装配BeanSpring注解配置和Java配置类
  • 2月面经:真可惜...拿了小米的offer,字节却惨挂在三面
  • 磐云PY-B8 网页注入
  • 多传感器融合定位十-基于滤波的融合方法Ⅰ其二
  • Java集合面试题:HashMap源码分析
  • 华为OD机试 - 数组合并(Python),真题含思路
  • Vue2创建移动端项目
  • PorterDuffXfermode与圆角图片