给小白用户的程序使用保姆级教程
程序交付后,经常会遇到客户拿到代码不会用的情况,有些稍微提醒下就能自行解决,但也遇到过甚至连编译器都不知从哪里启动,不知哪个按钮是编译,甚至不知“编译”这个词的概念。因此将遇到的问题总结一下,整理一个保姆级教程供大家参考。
1. 控制台程序和可视化程序的解释说明
控制台程序也叫字符界面程序,就是启动后一个小黑框,呈现的内容都是字符界面,不适用鼠标操作,全部都是键盘控制。学校里的C/C++
教材都是属于控制台程序,它相对简单,关注点只在语言本身,使用如printf / scanf / cin / cout
这类操作进行输入输出。
可视化程序也叫窗口程序或图形化程序,它由一个或多个窗口组成,窗口上会布局一些窗口控件,如按钮、输入框、列表框之类,用户可通过鼠标和键盘操作程序,它的用户体验比控制台程序更好,但也相对来说编写难度更高。C++
语言本身不支持可视化程序的编写,都得借助一些框架来实现可视化,因此多了许多语言之外的概念。主流的可视化框架有MFC
和Qt
(有些学生会接触EasyX
,用控制台程序实现绘图,这种不算可视化程序)。
-
这是一个控制台程序的外观
-
这是一个可视化程序的外观
2. 控制台程序
能编写C/C++
控制台程序的开发工具很多,学生中常用的有VC6.0、DevC++、Code::Blocks、VS2010
等,这里推荐大家尽可能用最新的开发环境,比如Visual Studio 2022
(后面有下载安装教程),新的工具更符合当下的语法标准,以及更好的智能感知和报错提示,使你写程序的效率更高。极力反对使用VC6.0
,这个上古神器只是部分奇葩老师的宠儿,使用它有百害而无一利,过去不严格的语法规范会让你形成错误的代码编写习惯(我见过一些学校的老师强制学生用VC6.0
,这种真的是误人子弟,完全就是自己不思进取不愿接受新事物,对这类老师来说,他们的知识体系已经非常陈旧了,甚至从毕业后就没学过新东西,只要有可能,他们能把VC6.0
再教20年,甚至带到棺材里去)。如果觉得Visual Studio 2022
太庞大,可以退而求其次考虑DevC++
(后面有下载安装教程),不是说这个东西好,而是它的确在某些方面比较适合新手(比如不用创建项目工程就能运行程序),加之计算机算法竞赛指定它为专用工具,所以在学生中广泛使用。
2.1. 在Visual Studio 2022中使用程序
2.1.1. 便捷的做法
一般提供给你的是一个visual studio 2019
工程的压缩文件,拿到压缩文件后,需要先解压(这里很多人不懂解压是什么含义,解压就是将.zip
文件释放成一个文件夹,文件夹中含有各种文件)。
比如,我给的是这样的一个压缩包:
它的扩展名是.zip
(如果没有显示扩展名,请百度搜索如何设置系统显示文件扩展名)。
先通过解压工具对其进行解压,解压工具有很多,比如winrar
、7zip
,甚至windows
本身就支持zip
格式的解压,这里我以win11
自带的解压操作为例解压演示:
右键菜单,选择“全部解压缩”
在窗口中点击“提取”
解压后的文件夹与压缩包对比
至此,解压工作完成。
接下来,如果你电脑上安装的是vs2019或者vs2022,则可以直接启动工程:
首先进入文件夹:
这里顺带对什么是源文件,什么是数据文件进行解释,因案例工程简单,所以只有一个.c
文件,如果是复杂的程序将会有多个.c
和.h
文件。数据文件是程序在运行过程中需要用到的数据,这些数据需要在程序启动的时候进行加载,通常要将数据文件和源文件放在同一个目录(也就是文件夹)中,然后在开发工具中启动程序才能将数据文件正确加载到内存。
进入visual studio 2019
工程目录后,可以直接双击.sln
或者.vcxproj
启动项目,.sln
是解决方案文件,它可以管理多个项目文件,而.vcxproj
就是项目文件,因为案例工程简单,所以解决方案下只有一个项目工程,因此你双击哪个都能启动项目。
在这里需要注意,如果是visual studio 2019
,直接启动工程,如果是visual studio 2022
,则在此过程中会提示你升级项目,出现的升级界面类似这样(我的是英文版,中文版类似,点OK就行):
有人问我,为什么启动后,界面是空白的,看不到代码,诸如这样:
解决办法是你应该找到解决方案的选项卡,然后逐个点开它就行:
选择调试模式运行,或者非调试模式运行,都会先编译程序,并在编译成功后将程序运行起来。
2.1.2. 自己创建工程的做法
(待续)
2.2. 在DevC++中使用程序
2.2.1. 便捷的做法
交付给你的是一个压缩包,如下这样:
它的扩展名是.zip
(如果没有显示扩展名,请百度搜索如何设置系统显示文件扩展名)。
先通过解压工具对其进行解压,解压工具有很多,比如winrar
、7zip
,甚至windows
本身就支持zip
格式的解压,这里我以win11
自带的解压操作为例解压演示:
右键菜单,选择“全部解压缩”
在窗口中点击“提取”
解压后的文件夹与压缩包对比
至此,解压工作完成。
将源程序修改编码格式,用记事本打开源文件:
右键源文件,选择用记事本打开:
在文件菜单中选择另存为:
选择编码为ANSI:
点击“是”确认替换:
如果你不按照我说的方式进行文件转码,将会在后续操作中遇到中文乱码的情况。
接下来重新右键代码文件,选DEVC++打开:
如果右键中没有DevC++
,则可以先启动DevC++
,然后将源代码文件通过鼠标拖拽到DevC++
中。
接下来编译并运行程序:
如果出现诸如此类的编译错误,是因为默认配置的语言标准版本太低,请往下查看DevC++
的安装配置章节,会有详细说明:
2.2.2. 自己创建工程的做法
(待续)
3. 可视化程序
3.1. MFC程序
MFC程序需要你安装Visual Studio 2022
(或是其他vs版本),并且需要配置上MFC
组件(后面有Visual Studio 2022
的配置教程以及MFC
组件的配置方法)。
程序会以一个zip文件的形式给你,如下所示:
请先将zip解压成目录,这里用系统默认的解压方式(也可以用winrar等解压工具):
进入解压后的文件夹,找到.sln
或是.vcxproj
文件启动工程,要是文件不显示扩展名,请百度搜索如何让系统显示文件扩展名:
我的开发工具可能是Visual Studio 2019
,所以如果你安装的是Visual Studio 2022
的话可能会有一个升级提示框,点确定即可:
很多人问启动后,看不到代码,如这样:
请按照这样的方式操作,首先找到解决方案,然后展开目录,就能看到代码了,然后在菜单中选择编译执行程序,调试模式执行和非调试模式执行都可以:
如果出现编译失败(大概率不会),则右键工程,进入属性设置对话框:
核对当前编译模式和属性页对应的模式是否一致,然后再将WindowsSDK Version
的下拉列表中选择你系统中可用的版本就行:
3.2. Qt程序
Qt程序为可视化程序,你需要在电脑上安装Qt Creator
(后面有下载安装教程),程序会以一个zip文件的方式给你,如下图所示:
请先将zip解压成目录,这里用系统默认的解压方式(也可以用winrar等解压工具):
这里注意,Qt不允许工程目录中出现中文,所以你的解压位置一定不能含有中文,至于怎么检查是否含有中文,很简单,进入解压目录后,查看地址栏是否含有中文:
找到.pro文件启动工程,要是文件不显示扩展名,请百度搜索如何让系统显示文件扩展名:
设置编译选项,选择MinGW 64
,如第一次配置项目可能会出一个错误提示,这里不用担心,是让你重新配置编译选项:
接下来就可以启动程序了:
如果你的项目涉及到MySql
(Qt和MySQL的配置后面有教程),那么工程目录中我通常会放一个SQL的初始化脚本
:
双击批处理文件,执行sql
脚本,这里需要输入mysql
的账号密码:
接下来再启动工程即可:
4. 工具的下载安装
4.1. Visual Studio 2022的下载安装
Visual Studio 2022
的社区版完全免费(其他版本也有公开的KEY可以激活,百度一搜就有)
Visual Studio 2022
下载地址,这里直接去官网下载就行:https://visualstudio.microsoft.com/zh-hans/vs/
打开页面后,选择社区版:
在安装Visual Studio 2022
的时候,需要勾选(1)使之能开发C/C++工程,如果是需要运行MFC
程序的话,需要将MFC
组件勾选,这里注意一下,早期的Visual Studio
版本MFC
组件是默认安装的,从Visual Studio 2015
之后需要手动勾选。(这里截屏是用的Visual Studio 2019
,如果是Visual Studio 2022
做法类似):
如果你之前已经安装了Visual Studio 2022
也没关系,可以在这里面重新配置(中文版可对照弄):
4.2.DevC++的下载安装
其实DevC++
跟VC6.0一样,也是上古神器,连原作者都不再维护,但好在它还能配置新的语言标准(有一些非官方开发者在维护新版本),因为无法从官网下载(官网好像都没了),这里推荐从腾讯软件中心下载:https://pc.qq.com/detail/16/detail_163136.html
4.2.1. 编译器配置
之所以要做编译器配置,是因为默认配置用到的是较老的语言标准,这在编译代码的时候可能发生编译错误,所以建议大家在安装好DevC++
后,及时设置编译器选项。
以下分别针对C语言的编译器选项和C++的编译器选项进行配置讲解:
4.2.2. C语言配置
DevC++
默认使用C89标准,该标准不支持诸如在for圆括号中定义变量,这和现在的代码习惯有较大差别,建议改成C99标准或者C11标准,具体做法如下:
菜单->工具->编译器选项,进入选项卡,具体做法如下:
点击编译器,勾选编译时假如一下命令复选框,在命令框中添加-std=c99
,具体做法如下:
点击代码生成/优化,再点击代码生成,从语言标准(-std)的下拉框中选择ISO C99
,具体做法如下:
4.2.3. C++配置
DevC++
默认使用C++98标准,该标准不支持很多新的C++语法特性,建议改成C++11标准,具体做法如下:
菜单->工具->编译器选项,进入选项卡,具体做法如下:
点击编译器,勾选编译时假如一下命令复选框,在命令框中添加-std=c++11
,具体做法如下:
点击代码生成/优化,再点击代码生成,从语言标准(-std)的下拉框中选择ISO C++11
,具体做法如下:
QtCreator的下载安装
4.3. 下载安装QtCreator
Qt
可直接从官网下载,这里需要注意的是,主流版本是Qt5
,请不要下载Qt6
,我推荐的版本是Qt 5.12.10
,官网下载地址:https://download.qt.io/archive/qt/5.12/5.12.10/
下载完毕后就开始安装它:
这里需要输入账号密码,可以去官网注册一个账号:
勾选协议:
设置安装路径,如果C盘容量足够,推荐默认位置:
这里勾选MinGW 7.3.0 64-bit
注意下面还有一处MinGW 7.3.0 64-bit
也要勾选,千万别漏了:
接下来等它安装完毕即可。
4.3.1 MySQL安装配置
有些Qt项目会用到MySQL数据库,这里需要在安装完Qt后进行额外配置,Qt和MySQL的配置非常的麻烦,涉及到MySQL的安装,Qt的MySQL驱动,因为驱动跟Qt的具体版本有关,无法通用,所以整个过程比较容易遇到错误。
首先是安装MySQL,这里推荐直接下载MySQL的zip压缩包,并将之解压到特定位置,我这里使用的是mysql-8.0.16 64
位版本:
从地址栏上找到完整的mysql
的bin
路径,并将这个路径添加到系统环境的Path中:
接下来,用管理员身份启动命令提示符:
cd
到bin目录下,执行命令:mysqld --initialize --console
,记住打印的随机密码;
启动mysql服务命令:net start mysql
(如果出现服务名无效,请先执行mysqld.exe -install
);
更改密码,执行mysql -u root -p
,输入随机密码,执行ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
,设置新密码;
具体做法如下图所示:
进入mysql
的lib
目录,并将libmysql.dll
和libmysql.lib
两个文件复制:
将复制的两个文件粘贴到Qt对应的bin目录下,注意看下图位置,不要弄错了地方:
进入Qt的数据库驱动目录,查看是否有qsqlmysql.dll
和qsqlmysqld.dll
,如果有,很幸运,你的mysql
驱动是正常的,如果没有,很不幸,你需要自己编译驱动文件,或是从别人那里拷贝,这里要注意,每个Qt
的驱动版本是不通用的,比如Qt5.12.10
的驱动就无法用于Qt5.13.0
,将对应的两个驱动文件放到这个目录,如下图所示:
接下来启动工程,如果连接数据库成功,则表示驱动设置正确。