Visual studio C++ 指导教程Word文档下载推荐.docx
《Visual studio C++ 指导教程Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Visual studio C++ 指导教程Word文档下载推荐.docx(59页珍藏版)》请在冰豆网上搜索。
创建项目
在使用VisualStudio编写VisualC++程序的过程中,第一个任务是选择项目的类型。
对于每个项目类型,VisualStudio均会设置编译器设置,并会为您生成起始代码。
在此演练中的项目中,您将创建一个基本程序,该程序跟踪有多少个玩家正在玩不同的纸牌游戏。
1.在“文件”菜单上指向“新建”,再单击“项目”。
2.在
新建项目
对话框中,展开
模板
节点,展开
VC++节点,然后单击
Win32。
3.在已安装的模板列表中,单击
Win32控制台应用程序。
4.输入项目名称。
对于此示例,请输入游戏。
当您创建项目时,VisualStudio会将该项目放入一个解决方案。
默认情况下,解决方案的名称与项目名称相同。
接受该名称。
您可以接受默认位置、键入一个不同的位置或者浏览到要保存项目的目录。
单击“确定”启动“Win32应用程序向导”。
5.在“Win32应用程序向导”的“概述”页上,单击“下一步”。
6.在“应用程序类型”下的“应用程序设置”页,选择“控制台应用程序”。
在“附加选项”下选择“空项目”设置。
单击“完成”。
现在有了项目,但项目还没有源代码文件。
使用解决方案资源管理器
“解决方案资源管理器”可帮助您使用解决方案中的文件和其他资源。
在本节中,您将向项目中添加一个类,并且VisualStudio将添加.h和.cpp文件。
然后,为测试类的主程序向项目添加一个新的源代码文件。
向项目添加类
1.如果未显示“解决方案资源管理器”,请在“视图”菜单上,单击“解决方案资源管理器”。
2.在“解决方案资源管理器”中,右击“头文件”文件夹,指向“添加”,然后单击“类”。
在添加类向导,展开
VisualC++
节点,单击
C++单击,在已安装模板的列表中
C++类
,然后单击
添加。
3.在“一般C++类向导”中,键入Cardgame作为“类名”,并接受默认的文件名和设置。
4.对已在编辑区域中打开的Cardgame.h文件进行以下更改:
∙在类定义的左大括号之后添加两个私有数据成员。
∙intplayers;
∙staticinttotalparticipants;
∙添加一个采用类型为
int
的参数之一的公共构造函数原型。
∙Cardgame(intp);
∙删除VisualStudio生成的默认构造函数。
默认构造函数是没有参数的构造函数。
该默认构造函数类似于:
∙Cardgame(void);
5.在您对Cardgame.h文件进行更改之后,该文件应类似于:
6.#pragmaonce
7.classCardgame
8.{
9.intplayers;
10.staticinttotalparticipants;
11.public:
12.Cardgame(intp);
13.~Cardgame(void);
14.};
#pragmaonce
行指明编译器只包含该文件一次。
有关更多信息,请参见一旦。
有关此头文件中的其他C++关键字的信息,请参见
类(c++)、int、静态(c++)
和
公共(c++)。
15.双击“源文件”文件夹中的Cardgame.cpp,将其打开以进行编辑。
16.在
#include"
Cardgame.h"
之后,添加以下各行。
17.#include<
iostream>
18.usingnamespacestd;
19.为采用一个
参数的构造函数添加代码。
20.Cardgame:
:
Cardgame(intp)
21.{
22.players=p;
23.totalparticipants+=p;
24.cout<
<
p<
"
playershavestartedanewgame.Therearenow"
25.<
totalparticipants<
playersintotal."
<
endl;
26.}
开始键入pl或to时,可以按Ctrl+空格键,以便自动完成功能将为您完成键入
players
或totalparticipants
的操作。
27.删除VisualStudio生成的以下默认构造函数。
28.Cardgame:
Cardgame(void);
29.在您对Cardgame.cpp文件进行更改之后,该文件应类似于:
30.#include"
31.#include<
32.usingnamespacestd;
33.
34.Cardgame:
35.{
36.players=p;
37.totalparticipants+=p;
38.cout<
39.<
40.}
41.Cardgame:
~Cardgame(void)
42.{
43.}
有关
#include的更多信息,请参见#include指令(c/c++)。
添加源文件
现在,为测试类的主程序添加一个源代码文件。
添加新源文件
1.在“解决方案资源管理器”中,右击“源文件”文件夹,指向“添加”,然后单击“新建项”。
在“VisualC++”类别中,选择“代码”,然后单击“C++文件(.cpp)”。
2.当名称,输入testgames,然后按
3.在testgames.cpp编辑窗口中,键入以下代码。
4.#include"
5.#include“stdafx.h”
6.intCardgame:
totalparticipants=0;
7.intmain()
9.Cardgame*bridge=0;
10.Cardgame*blackjack=0;
11.Cardgame*solitaire=0;
12.Cardgame*poker=0;
13.
14.bridge=newCardgame(4);
15.blackjack=newCardgame(8);
16.solitaire=newCardgame
(1);
17.deleteblackjack;
18.deletebridge;
19.poker=newCardgame(5);
20.deletesolitaire;
21.deletepoker;
22.
23.return0;
24.}
有关此源文件中的C++关键字的信息,请参见
新运算符(C++)
删除运算符(C++)。
25.在“生成”菜单上,单击“生成解决方案”。
来自生成的输出应显示在“输出”窗口中。
这表示项目已编译,并且未发生错误。
如果未显示输出,请将您的代码与前面步骤中提供的代码进行比较。
在本步骤中,您将故意在代码中引入一个VisualC++语法错误,以了解什么是编译错误,以及如何修复它。
编译项目时,会显示错误消息以指示所发生的问题的性质和位置。
本主题假定您具备C++语言的基础知识。
使用IDE修复编译错误
1.在
testgames.cpp
中,删除最后一行中的分号,使代码如下所示:
2.return0
3.在“生成”菜单上,单击“生成解决方案”。
4.“输出”窗口中显示一条消息,指示生成项目失败。
单击“输出”窗口中的“转到下一条消息”按钮(指向右方的绿色箭头)。
“输出”窗口中的错误消息和状态栏区域指示右大括号前缺少一个分号。
若要查看有关错误的更多帮助信息,请突出显示错误,并按F1键。
5.将分号重新添加到导致语法错误的行的末尾:
6.return0;
7.在“生成”菜单上,单击“生成解决方案”。
“输出”窗口中显示一条消息,指示项目已正确编译。
以“调试”模式运行程序使您可以使用断点来暂停程序,以检查变量和对象的状态。
在本步骤中,您将在程序运行时观察变量的值,并推断为什么值与预期的不同。
以“调试”模式运行程序
1.如果“testgames.cpp”文件不可见,请在编辑区域中单击该文件对应的选项卡。
2.单击以下行,将其设置为编辑器中的当前行:
3.solitaire=newCardgame
(1);
4.若要在该行上设置断点,请单击“调试”菜单上的“切换断点”,或者按F9。
也可以单击代码行左侧的区域来设置或清除断点。
设置了断点的代码行的左侧会显示一个红色圆圈。
5.在“调试”菜单上,单击“开始调试”,或者按F5。
当程序运行到包含断点的行时,执行将暂时停止(因为程序处于“中断”模式)。
代码行左侧的黄色箭头指示该行是要执行的下一个代码行。
6.若要检查
Cardgame:
totalparticipants
变量的值,请将鼠标指针悬停在该变量上方。
该变量的名称及其值12即显示在工具提示窗口中。
右击
变量。
选择“表达式:
‘totalparticipants’”,并单击“添加监视”以在“监视”窗口中显示该变量。
您也可以选择该变量并将其拖动到“监视”窗口。
7.在“调试”菜单上,单击“逐过程”,或者按F10步进到下一行代码。
的值现在显示为13。
8.右击
main
方法的最后一行(return0;
),并单击“运行到光标处”。
代码左侧的黄色箭头指向要执行的下一个语句。
9.在Cardgame终止时,Cardgame:
数应当减小。
此时,Cardgame:
totalparticipants应当等于0,这是因为所有的Cardgame指针都已删除,但是“监视1”窗口指示Cardgame:
等于18。
代码中存在一个bug,您将在下一节中检测并修复它。
10.在
调试
菜单上,单击
停止调试
或按shiftF5以停止程序。
在本步骤中,您将修改程序以修复在测试项目时发现的问题。
修复包含bug的程序
1.若要明白在Cardgame对象销毁时会发生什么,请查看Cardgame类的析构函数。
在“视图”菜单上,单击“类视图”,或者单击“解决方案资源管理器”窗口中的“类视图”选项卡。
展开“游戏”项目树并单击“Cardgame”类。
下方的区域显示类的成员和方法。
右击“~Cardgame(void)”析构函数并单击“转到定义”。
2.要在Cardgame终止时减少
,请在
~Cardgame
析构函数的左大括号和右大括号之间键入以下代码:
3.totalparticipants-=players;
4.cout<
players<
playershavefinishedtheirgame.Therearenow"
5.<
6.}
7.
8.进行更改后,Cardgame.cpp
文件应如下所示:
9.#include"
10.#include<
11.usingnamespacestd;
12.Cardgame:
13.{
14.players=p;
15.totalparticipants+=p;
16.cout<
17.<
18.}
19.
22.totalparticipants-=players;
23.cout<
24.<
25.}
26.在“生成”菜单上,单击“生成解决方案”。
27.在“调试”菜单上,单击“启动调试”,或按F5,以“调试”模式运行该程序。
程序将在第一个断点处暂停。
28.在“调试”菜单上,单击“逐过程”或者按F10逐句通过程序。
请注意,执行每个Cardgame构造函数后,totalparticipants
的值会增大。
而在删除每个指针(并调用析构函数)后,totalparticipants
的值会减小。
29.单步执行至程序的最后一行。
恰好在执行
return
语句之前,totalparticipants
等于0。
继续逐句执行程序,直到在
菜单上单击
运行
或按F5退出或从而使程序得以继续运行,直到退出。
现在,我们创建了应用程序,最后一步是创建可供其他用户在其计算机上安装该程序的安装程序。
为此,我们需要将新项目添加到现有解决方案。
此新项目的输出是setup.exe文件,该文件用于安装我们之前在另一台计算机上创建的应用程序。
Note
本主题中的信息不适用于VisualC++Express。
本演练将使用WindowsInstaller来部署应用程序。
您还可以使用ClickOnce部署应用程序。
有关更多信息,请参见
VisualC++应用程序的ClickOnce部署。
有关常规部署的更多信息,请参见部署应用程序和组件。
此过程中使用的功能在VisualC++学习版中不可用。
创建安装项目和安装程序
1.在“文件”菜单上,单击“新建”,再单击“项目”。
随即出现“添加新项目”对话框。
2.在“已安装的模板”下,展开“其他项目类型”节点。
接着,展开“安装和部署”节点并单击“VisualStudioInstaller”。
3.从“模板”窗格中,选择“安装向导”。
键入安装项目的名称,例如
gameInstaller。
在“解决方案”列表框中,选择“添加到解决方案”。
单击“确定”按钮。
4.将出现“安装向导”。
单击“下一步”继续。
5.从向导的“选择一种项目类型”窗格中,选择“为Windows应用程序创建一个安装程序”选项,并单击“下一步”继续。
6.从向导的“选择要包括的项目输出”窗格,选择“主输出来自游戏”,并单击“下一步”继续。
7.无需在安装程序中包括任何其他文件,因此,从安装程序的“选择要包括的文件”窗格中,单击“下一步”。
8.检查向导的更改,并验证所有内容是否正确。
单击“完成”创建项目。
“解决方案资源管理器”中将列出新的
gameInstaller
项目。
此项目将列出应用程序依靠的依赖项(如C运行库或.NETFramework)以及安装程序中将包括的项目文件。
创建安装项目后,有许多选项可以更改。
WindowsInstaller部署。
9.通过在“解决方案资源管理器”中选择安装程序并从“生成”菜单单击“生成gameInstaller”来生成安装程序。
10.找到上一节创建的setup.exe和gameInstaller.msi程序。
在计算机上双击任一文件安装应用程序。
我们已经学习了VisualStudioIDE,现在可以开始使用VisualC++编写程序了。
我们将学习创建的第一个应用程序类型是命令行应用程序。
命令行应用程序不包含图形用户界面(GUI)。
通常,命令行应用程序从控制台读取输入,并将输出写入该控制台,而不是写入图形窗口。
在本节中,您将学习如何创建C和C++命令行应用程序。
还将学习如何创建不使用Microsoft扩展的标准C和C++程序。
如果您希望使用VisualC++创建在其他操作系统上使用的应用程序,这将很有用。
这些主题假定您具备C++语言的基础知识。
创建标准C++程序(C++)
在命令行上编译本机C++程序(C++)
在VisualStudio中编译面向CLR的C++程序(C++)
编译C程序
在VisualStudio集成开发环境中使用Visual(IDE)C++创建标准C++程序。
通过采用此演练中的步骤,您可以创建一个项目,向该项目添加一个新文件,修改该文件以添加C++代码,然后使用VisualStudio编译并运行程序。
您可以键入自己的C++程序,或者使用示例程序之一。
此演练中的示例程序是一个控制台应用程序。
此应用程序使用标准模板库(STL)中的
set
容器。
VisualC++使用2003C++标准进行编译,但有以下几点主要例外之处:
两阶段名称查找、异常规范和导出。
此外,VisualC++支持若干C++0x功能,例如,lambda、自动、static_assert、rvalue引用和extern模板。
如果要求符合标准,请使用
/Za
编译器选项来禁用对该标准的Microsoft扩展。
/Za、/Ze(禁用语言扩展)。
创建项目并添加源文件
1.通过以下方式创建一个项目:
指向“文件”菜单上的“新建”,然后单击“项目”。
2.在“VisualC++”项目类型窗格中,单击“Win32”,然后单击“Win32控制台应用程序”。
3.键入项目名称。
默认情况下,包含项目的解决方案与项目同名,但您可以键入其他名称。
您也可以为项目键入其他位置。
单击“确定”创建项目。
4.在“Win32应用程序向导”中,单击“下一步”,选择“空项目”,然后单击“完成”。
5.如果未显示“解决方案资源管理器”,请在“视图”菜单上,单击“解决方案资源管理器”。
6.将一个新源文件添加到项目,如下所示。
a.在“解决方案资源管理器”中,右击“源文件”文件夹,指向“添加”,然后单击“新建项”。
b.在“代码”节点中单击“C++文件(.cpp)”,为文件键入名称,然后单击“添加”。
该.cpp文件即显示在“解决方案资源管理器”中的“源文件”文件夹中,并且文件将在VisualStudio编辑器中打开。
7.在编辑器内的文件中,键入使用标准C++库的有效C++程序,或者复制示例程序之一并将其粘贴在文件中。
例如,您可以使用
设置:
查找(STL示例)示例程序,该程序是帮助中附带的标准模板库示例之一。
如果使用该示例程序,请注意
usingnamespacestd;
指令。
此指令使程序能够使用
cout
endl,而无需完全限定名(std:
std:
endl)。
8.保存该文件。
9.在“生成”菜单上,单击