现在很多高校还是利用Visual C++ 6.0这一经典版本在教C++,很多人对自己第一个程序的回忆是利用Visual C++ 6.0用C语言写的Helloworld,之后再学习C++的类,不过还是在使用Visual C++ 6.0。于是Visual Studio对Visual C++ 6.0界面的布置改动得比较大,有大部分人如果要写C/C++还是会使用Visual C++ 6.0,甚至苦苦寻找win8下运行Visual C++ 6.0的方法,之后再弄个虚拟机之类的。一直对新式的C语言编写工具讳莫如深,不敢使用。其实Visual Studio 2008这玩意用熟了之后,比Visual C++ 6.0方便多了。
Visual Studio 2008的下载这里就不提供的,由于这东西与Office一样,网上一搜一堆,然后各种免费好用版满天飞。唯一的注意就是由于我们只是个人自己在玩,因此使用Visual Studio 2008的专业版的就好了。之后,Visual Studio 2008的安装与微软的其它东西一样,即使把iso利用版本较高的winrar解压之后,安装起来非常也非常缓慢。请耐心等待。
安装Visual Studio 2008的时候还需要关闭其它程序,选择完全安装,并且重启。
一、Visual Studio 2008的基本使用
1、装好之后,打开Visual Studio 2008,和VC6一样,先要有工程,才能有cpp。如下图,文件->新建->项目。新建一个项目,这里把工程叫成了项目。其实就是一个文件夹。
2、之后,选择Visual C++中的Win32->Win32控制台应用程序。并且选好这个项目的位置。同时输入项目的名称,这里是Helloworld。值得注意的是,Visual Studio 2008接下来是在你选择的位置下,再根据这个项目名称再新建一个文件夹的。因此没有必须,在选择项目位置时候,为这个项目独立建文件夹。
解决方法同项目名称即可。这货相当于Visual C++中的工程空间,可以根据这个来打开项目。反正暂时还不知道有什么用。
如果你见不到Visual C++,很可能是你在安装的时候,默认编程语言选择了其他了。它只不过是藏在“其他语言”中。我下载的这个版本,里面的“其他语言”还包括C#与VB,可见Visual Studio 2008非常强大,还可以用来写其它语言的项目。它还等同碉堡的Eclipse,还可以弄上一些其它语言的插件,写更多的语言。
3、得到Helloworld这个项目之后,直接右键旗下的源文件,如下图,新建一个项,其实就是一个文件。
4、如下图,选择C++文件。名称可以跟文件夹一模一样。
5、之后,就可以写代码了,写代码的过程中,Visual Studio 2008会帮你自动缩进的。写到最后,你还可以把所有代码全选,通过Ctrl+K,Ctrl+F对代码自动排版。相当于VC6的alt+F8功能。通过Ctrl+J能够唤出代码提示,相当于VC6的Ctrl+Space,与Eclipse的Alt+/(?)
但是部分版本的Visual Studio 2008可能默认没有开启代码提示。
可以通过工具->选项->文本编辑器->所有语言->常规,勾选“自动列出成员”。
同时可以在这里调出行号。
二、Visual Studio 2008调试器的使用与程序的运行
双击任意一行代码,行号旁边的空白,就能够设置端点,通过F5就能开始调试。
这里注意区分调试与正常运行,按F5的话等同按工具栏的播放按钮,开始调试,进入调试界面。按Ctrl+F5是直接开始程序的运行,不会进入调试界面,写出来的程序基本上即使不写system("pause");或者getchar();也不会一闪而过。
在调试的过程中,F11能跳到一下句,Shirf+F11能够跳到一个断点。
请同时注意控制台的输出。
在两句输出语言中加断点的调试结果。
如果部分Visual Studio 2008在调试到最后出现一闪而过的情况,可以在末尾加上:system("pause");或者getchar();
getchar();这里不解析了,像VC6一样,让用户输入完字符才结束程序。system("pause");则是新货,还是我火星了?
这里随便说一句,记得写using namespace std;否则会出现:
“error C2065: “cout”: 未声明的标识符”与“error C2065: “endl”: 未声明的标识符”的错误,
这里任何一句都不能省。
同时,标准的C++规定main函数必须声明为int型,程序正常结束返回0,否则-1。我们还是标准点,收起void main吧……
在程序开发中,很多时候需要用到别人开发的工具包,如OpenCV和itk。一般而言,在vs2008中,很少使用源文件,大部分是使用对类进行声明的头文件和封装了类的链接库(静态lib或动态dll)。
如果要使用这些类,需要在文件中包含头文件的名字,如#include “cv.h”。但这个并不够,因为这个文件一般来说不在当前目录下,有两种方法解决这个问题。一,将所包含的头文件复制到当前目录(另一篇文章有写)下,这个比较有局限性,因为如果头文件太多,这样比较麻烦。二,将头文件所在的路径包括进去,即添加包含(include)文件目录。两种方法:A.依次打开“项目——属性——配置属性——C++——常规——附加包含目录”中加入所有的路径。这里需要注意的是(1)路径必须指向头文件所在的子文件夹,而不能直到父文件夹就结束(2)每个路径不需要加上双引号,输入了之后,vs2008会自动加上双引号,如果自己加可能vs2008无法识别双引号(3)如果是多个路径,路径直接用“;”隔开。B.[菜单]“工具->选项->项目和解决方案->C++ 目录”,选择对应平台,然后添加所需“包括文件”目录。
除了头文件以外,也需要告诉编译器,类在哪里实现的,即封装类的链接库在哪里,这样程序才能执行工具包中的函数。
首先需要将链接库的路径输入vs2008,即添加库(libs)文件目录。两种方法:A.依次打开“项目——属性——配置属性——链接器——常规——附加库目录”中加入链接库的路径。B.[菜单]“工具->选项->项目和解决方案->C++ 目录”,选择对应平台。
然后添加所需“库文件”目录,即添加编译所需要(依赖)的 lib 文件 。在“项目——属性——配置属性——链接器——常规——输入——附加依赖项”中加入链接库的名字,多个lib用空格隔开。(等同于“#pragma comment(lib, “xxx.lib”) ”语句)。