工程/项目(Project)是什么?
一个真正的程序(也可以说软件)往往包含多项功能,每一项功能都需要几十行甚至几千行、几万行的代码来实现,如果我们将这些代码都放到一个源文件中,那将会让人崩溃,不但源文件打开速度极慢,代码的编写和维护也将变得非常困难。
在实际开发中,程序员都是将这些代码分门别类地放到多个源文件中。除了这些成千上万行的代码,一个程序往往还要包含图片、视频、音频、控件、库(也可以说框架)等其它资源,它们也都是一个一个地文件。
为了有效地管理这些种类繁杂、数目众多的文件,我们有理由把它们都放到一个目录(文件夹)下,并且这个目录下只存放与当前程序有关的资源。实际上 IDE 也是这么做的,它会为每一个程序都创建一个专门的目录,将用到的所有文件都集中到这个目录下,并对它们进行便捷的管理,比如重命名、删除文件、编辑文件等。
这个为当前程序配备的专用文件夹,在 IDE 中也有一个专门的称呼,叫做“Project”,翻译过来就是“工程”或者“项目”。在 Visual Studio 下,这叫做一个“项目”,而在 Visual C++ 6.0 下,这又叫做一个“工程”,它们只是单词“Project”的不同翻译而已,实际上是一个概念。
不同的程序对应不同的工程类型(项目类型),使用 IDE 时必须选择正确的工程类型才能创建出我们想要的程序。换句话说,IDE 包含了多种工程类型,不同的工程类型会创建出不同的程序。
不同的工程类型本质上是对 IDE 中各个参数的不同设置;我们也可以创建一个空白的工程类型,然后自己去设置各种参数(不过一般不这样做)。
需要注意的是,对于同一个项目类型,不同 IDE 可能有不同的叫法,比如:
控制台程序没有复杂的功能,没有漂亮的界面,只能看到一些文字,虽然枯燥无趣,也不实用,但是它非常简单,不受界面的干扰,所以适合入门,我强烈建议初学者从控制台程序学起。等大家对编程掌握的比较熟练了,能编写上百行的代码了,再慢慢过渡到 GUI 程序。
在实际开发中,程序员都是将这些代码分门别类地放到多个源文件中。除了这些成千上万行的代码,一个程序往往还要包含图片、视频、音频、控件、库(也可以说框架)等其它资源,它们也都是一个一个地文件。
为了有效地管理这些种类繁杂、数目众多的文件,我们有理由把它们都放到一个目录(文件夹)下,并且这个目录下只存放与当前程序有关的资源。实际上 IDE 也是这么做的,它会为每一个程序都创建一个专门的目录,将用到的所有文件都集中到这个目录下,并对它们进行便捷的管理,比如重命名、删除文件、编辑文件等。
这个为当前程序配备的专用文件夹,在 IDE 中也有一个专门的称呼,叫做“Project”,翻译过来就是“工程”或者“项目”。在 Visual Studio 下,这叫做一个“项目”,而在 Visual C++ 6.0 下,这又叫做一个“工程”,它们只是单词“Project”的不同翻译而已,实际上是一个概念。
工程类型/项目类型
“程序”是一个比较宽泛的称呼,它可以细分为很多种类,例如:- 有的程序不带界面,完全是“黑屏”的,只能输入一些字符或者命令,称为控制台程序(Console Application),例如 Windows 下的命令提示符工具(cmd.exe),Unix/Linux/macOS 下的终端(Terminal)。
- 有的程序带界面,看起来很漂亮,能够使用鼠标点击,称为 GUI 程序(Graphical User Interface Program),例如 QQ、迅雷、Chrome 等。
- 有的程序不单独出现,而是作为其它程序的一个组成部分,普通用户很难接触到它们,例如静态链接库、动态链接库等。
不同的程序对应不同的工程类型(项目类型),使用 IDE 时必须选择正确的工程类型才能创建出我们想要的程序。换句话说,IDE 包含了多种工程类型,不同的工程类型会创建出不同的程序。
不同的工程类型本质上是对 IDE 中各个参数的不同设置;我们也可以创建一个空白的工程类型,然后自己去设置各种参数(不过一般不这样做)。
需要注意的是,对于同一个项目类型,不同 IDE 可能有不同的叫法,比如:
- 在 Visual Studio 2022 下,控制台程序对应的工程类型为“控制台应用(Console Application)”,GUI 程序对应的工程类型为“Windows 桌面应用程序(Windows Desktop Application)”。
- 在 Visual C++ 6.0 下,控制台程序对应的工程类型为“Win32 控制台程序(Win32 Console Application)”,GUI 程序对应的工程类型为“Win32程序(Win32 Application)”。
控制台程序没有复杂的功能,没有漂亮的界面,只能看到一些文字,虽然枯燥无趣,也不实用,但是它非常简单,不受界面的干扰,所以适合入门,我强烈建议初学者从控制台程序学起。等大家对编程掌握的比较熟练了,能编写上百行的代码了,再慢慢过渡到 GUI 程序。