現在很多高校還是利用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”) ”語句)。