语出《论语·卫灵公》:子贡问为仁。子曰:“工欲善其事,必先利其器。居是邦也,事其大夫之贤者,友其士之仁者。”
2020年11月终于下定决心开始 Visual C++ 的学习了,首先要学习 C++,但不考虑任何 Windows 编程事项。在熟悉了 C++ 之后,再进行学习如何开发 Windows 应用程序。
但在学习 C++ 的时候,将使用仅仅涉及命令行输入和输出的程序,我们能够集中于 C++ 语言工作过程的细节,不被 Windows 的复杂性分散注意力。
在熟悉 C++ 之后,在 Windows 应用改程序的开发中应用 C++是一件容易、自然的事情。
Visual C++控制台应用程序允许编写、编译并测试没有任何 Windows 程序所需元素的 C++ 程序,实际就是基于字符的命令行程序。
Visual C++ 一起提供的 IDE 是一个很好的学习 C++ 的环境,包括了编辑器、编译器、链接器和库等部件,这些部件都是编写和执行 C++ 程序必须的基本工具。
认识 Visual Studio 2012
所有示例均在 Visual Studio 2012 下进行,安装好后,IDE 界面如下图,包括有 菜单栏、工具栏、Solution Explorer、Editor 和 Output 等内容。
理解什么是项目和解决方案
解决方案就是存储一个或多个项目有关的所有信息的文件夹,解决方案有关信息存储在扩展名为 .sln 和 .suo 两个文件中。
项目是否成某个程序的全部组件的容器,有关项目的信息存储在扩展名为 .vcxproj 文件中。
当创建项目时,没有选择在现有的解决方案中添加该项目,那么系统将会自动创建一个新的解决方案。
开始创建第一个 Win32 控制台应用程序
第一步
使用主菜单 File | New | Project 菜单项
第二步
在 New Project 窗口中选择 Win32 Console Appliaction,在 Name 文本框中输入项目名称,Location 文本框中选择存储路径,Solution name 文本框中输入解决方案名称,点击 OK 按钮下一步。
第三步
在 Win32 Application Wizard 界面中,保持默认选项,点击 Finish 按钮,项目创建完成。
第四步
创建的项目将自动显示在 Visual C++ 的 Solution Explorer 窗口中,如下图。
第五步
在 Windows 资源管理中 查看该项目,如下图
第六步
双击 Solution Explorer 窗格中的 ConsoleApplication2.cpp 文件进行源代码修改,第 5 行和第 10 行是新增的行。
1 // ConsoleApplication2.cpp : Defines the entry point for the console application. 2 // 3 4 #include "stdafx.h" 5 #include <iostream> //添加一个C++标准库,该库定义了基本 I/O 操作功能 6 7 int _tmain(int argc, _TCHAR* argv[]) 8 { 9 // std::cout 标准输出流名称,将字符串 Hello world! 输出 10 std::cout << "Hello world! "; 11 return 0; 12 }
第七步
按 F7 或者 菜单项 Build | Build Solution,开始构建解决方案,构建成功后在 Windows 资源管理器 中看到新增了一个子文件夹 Debug,包含 3 个文件。
.ilk 文件使链接器能够根据修改的源代码生成目标文件增量地链接到现有的 .exe 文件,避免每次修改程序都重新链接所有文件。
.pdb 文件包含调试信息,在调试模式中执行程序时要使用该调试信息。在调试模式中,可动态检查程序执行过程中所生成的信息。
第八步
ConsoleApplication2 项目文件夹 中也有一个 Debug 子目录,其中包含构建过程中生成的很多文件。
第九步
Debug 版本和 Release 版本
通过菜单项 Project | Properties 项,可以设定许多项目选项,决定了在编译和链接阶段处理源代码的方式,产生具体的可执行程序版本所对应的选项集合成为配置。
Visual C++ 自动创建可产生两种应用程序的配置:Debug 版本和 Release 版本,也可以从菜单项 Build | Configuration Manager 添加其他配置。
在使用 Debug 配置调试过的应用程序,在看起来可以正常工作之后,通常构建为 Release 版本,这样将产生没有调试和跟踪能力的优化代码,程序运行更快,占用更少内存。
第十步
执行程序,按下 Ctrl + F5 组合键来执行,如下所示
尝试创建空控制台项目
Step 1
重复前面步骤,在第三步中 Application Settings 选项卡中选中 Empty Project 复选框,点击 Finish 按钮创建项目。
Step2
在 Solution Explorer 中看不到任何源文件,如下图。
Step 3
默认情况下,项目选项设置为使用 Unicode 库,这将使得程序主函数使用非标准名,如上面创建的第一个控制台程序中主函数名为 _tmain(),并非我们标准的 main()。
为了在控制台程序中使用标准的本地 C++,需要关闭使用 Unicode 库,Alt + F7 打开 Property Pages 对话框,在顶部 Configuration 下拉列表中选中 All Configurations 选项,在左边窗口中选中 General 分类,在右边选中 Character Set 属性,设置为 Not Set 。
在之后讲解的所有 C++控制台程序的所有示例都将这么设置下,否则不能通过构建。
Step 4
添加新的源文件,在 Solution Explorer 窗格 中,右键菜单 Add | New Item 打开 Add New Item 对话框,选择 Code 分类 中的 C++ File (.cpp) 选项,然后输入文件名,点击 Add 按钮 就添加了这个新文件。
Step 5
在 Editor 中编辑 Main.cpp 源文件,输入下面的代码:
1 #include <iostream> 2 3 int main() 4 { 5 std::cout << "这是一个简单输出文本程序" << std::endl; 6 std::cout << "可以输出多行文本" << std::endl; 7 std::cout << "只需要在结尾输入 std::endl 语句即可" << std::endl; 8 return 0; 9 }
Step 6
成功编译该程序,并 Ctrl + F5 执行它,输出结果如下图。