VC6.0開發(fā)環(huán)境和應(yīng)用程序框架.ppt
《VC6.0開發(fā)環(huán)境和應(yīng)用程序框架.ppt》由會員分享,可在線閱讀,更多相關(guān)《VC6.0開發(fā)環(huán)境和應(yīng)用程序框架.ppt(23頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第1章VC6.0開發(fā)環(huán)境和應(yīng)用程序框架,編程語言要在某計算機(jī)系統(tǒng)下運(yùn)行,必定要經(jīng)過編譯或解析成為機(jī)器語言,這樣才能被計算機(jī)理解并執(zhí)行。高級語言按照翻譯方式可以分為兩類:編譯型和解釋型。C++是一種編譯型的高級語言,其過程嚴(yán)格按照6個步驟進(jìn)行:語法分析、詞法分析、語義分析、中間代碼生成、優(yōu)化代碼和目標(biāo)代碼生成。VC6.0是當(dāng)今主流的C/C++集成開發(fā)環(huán)境,除集編輯、編譯和運(yùn)行于一體外,還提供了豐富的控件、菜單和類定義自動處理功能。本章涉及的知識點(diǎn)有:VC6.0的安裝過程和軟件項目創(chuàng)建過程。VC6.0簡介:可以熟悉VC6.0的界面、各菜單項的功能,可以理解高級語言的編譯原理過程,并學(xué)會掌握使用幫助來解決在開發(fā)軟件過程中遇到的特殊問題。MFC、Win32的創(chuàng)建:可以學(xué)會MFC、Win32程序的創(chuàng)建、編譯和執(zhí)行,并可以學(xué)會使用VC調(diào)試器在程序運(yùn)行時對變量或函數(shù)調(diào)用順序進(jìn)行跟蹤,提高程序排錯的效率。Microsoft應(yīng)用程序框架:可以掌握MFC應(yīng)用程序框架結(jié)構(gòu)和消息傳遞相關(guān)知識,為本書第二篇和第三篇打下基礎(chǔ)。實踐練習(xí):可以學(xué)會創(chuàng)建自己的程序,并進(jìn)行簡單修改。,1.1安裝并測試VC6.0,本節(jié)首先介紹VC6.0的安裝過程,然后簡要介紹VC6.0的開發(fā)環(huán)境相關(guān)技術(shù)背景,最后使用VC6.0應(yīng)用程序向?qū)?chuàng)建一個項目,以測試VC6.0是否安裝成功。,1.1.1VC6.0的安裝,VC6.0的全稱是:VisualC++6.0;它是美國Microsoft公司研發(fā)的基于Windows操作系統(tǒng)的C++集成開發(fā)環(huán)境。較早期程序設(shè)計的各個階段都要用不同的軟件來進(jìn)行處理,如先用字處理軟件編輯源程序,然后用鏈接程序進(jìn)行函數(shù)、模塊連接,再用編譯程序進(jìn)行編譯,開發(fā)者必須在幾種軟件間來回切換操作。在這種開發(fā)條件下,軟件研發(fā)是非常繁瑣的,而且大多數(shù)浪費(fèi)時間的繁瑣手續(xù)對軟件研發(fā)沒有任何幫助。而集成開發(fā)環(huán)境是將這些繁瑣工作流程集中在一個軟件環(huán)境,通過這個軟件環(huán)境來完成所有的軟件研發(fā)步驟而無需切換不同的開發(fā)工具。高級語言編程的學(xué)習(xí),主要分為兩個方面:語言理論和開發(fā)工具。VC6.0作為一個集成開發(fā)環(huán)境,是初學(xué)者學(xué)習(xí)的重點(diǎn)。本文所使用的全部實例是在WindowsXP操作系統(tǒng)和VC6.0開發(fā)環(huán)境下編譯通過。讀者未必都要使用WindowsXP操作系統(tǒng),但安裝一個VC6.0是必要的。,1.1.2VC6.0開發(fā)環(huán)境,在前文已經(jīng)成功安裝了VC6.0集成開發(fā)環(huán)境,讀者可以通過:開始\所有程序\MicrosoftVisualStudio6.0\MicrosoftVisualC++6.0啟動VC6.0開發(fā)環(huán)境,也可以通過找到前文中安裝VC6.0的子目錄啟動MSDEV.EXE執(zhí)行文件來啟動VC6.0開發(fā)環(huán)境。為了使用的方便,建議用戶在桌面創(chuàng)建一個快捷方式。啟動VC6.0后,可以看到如圖所示的界面,該界面是VC6.0的主界面,本文的所有編程例子將在這里進(jìn)行。,,VC6.0主界面,1.1.3VC6.0應(yīng)用程序向?qū)Ш晚椖縿?chuàng)建,在本小節(jié)中,將學(xué)習(xí)如何使用VC6.0的應(yīng)用程序向?qū)?,并用該向?qū)韯?chuàng)建一個軟件項目-但該軟件不做任何事。在軟件開發(fā)過程中,人們很早就認(rèn)識到應(yīng)用程序的創(chuàng)建具有相似性和重復(fù)性,因此,如果能有一種功能,即自動化創(chuàng)建一類程序,則可以大大提高軟件開發(fā)的效率和軟件編程的入門門檻。因此應(yīng)用程序向?qū)?yīng)運(yùn)而生。以下是使用VC6.0創(chuàng)建項目的過程:,,,修改MFC的DLL使用類型測試項目運(yùn)行界面,1.2VC6.0簡介,本小節(jié)主要介紹VC6.0集成開發(fā)環(huán)境的各個子功能,同時也將詳細(xì)介紹VC6.0主界面菜單項的基本功能,最后介紹MSDN幫助的使用。,1.2.1C/C++編譯器,C和C++都是高級語言,C語言主要用于面向過程的程序設(shè)計,而C++是C的超集,即C是C++的子集。C++包含了原有的C的語法規(guī)則,同時增加了面向?qū)ο蠛头盒途幊痰乃枷?,支持了類的定義、對象的創(chuàng)建和通用算法的使用。高級語言要被計算機(jī)理解并執(zhí)行,都要經(jīng)過一個“翻譯過程”,就如一個不懂英文的中國人要知道英國人說的話,他需要一個翻譯,將英國人的語言翻譯成為普通話才能聽懂。在編程語言中,這種“翻譯過程”有兩種:編譯型和解釋型。編譯型語言是將該語言一次性編譯成另外一種語言或機(jī)器語言,如C/C++;解釋型語言是在運(yùn)行時逐行或逐段解釋成其他語言或機(jī)器語言,如HTML。,1.2.2編輯器,打開1.1節(jié)創(chuàng)建的“test”項目,單擊“FileView”選項卡,然后展開“testfiles”中的“SourceFiles”文件夾,雙擊打開“testView.cpp”源文件。如圖所示,該圖所示是“test”項目的工作區(qū)和代碼編輯區(qū)。,,編輯器窗口,1.2.3資源編輯器和資源符號,打開1.1節(jié)創(chuàng)建的“test”項目,單擊“ResourceView”選項卡,然后展開“testresources”中的“Menu”文件夾,雙擊打開“IDR_MAINFRAME”資源項。如圖1.21所示,該圖所示是工作區(qū)的資源選項卡列表,在該選項卡中可以編輯菜單或?qū)υ捒虻荣Y源。在圖1.21中可以看到該項目的主窗口的菜單編輯界面。在這個界面中,用戶可以自由地增加或刪除菜單項。在VC6.0中,源代碼和資源是分別編譯的,源代碼編譯成中間代碼時,資源則編譯成二進(jìn)制文件,再通過連接程序?qū)⑦@兩者連接起來運(yùn)行。在互不相同的編譯途徑中,連接程序怎么將源代碼和資源文件聯(lián)系起來呢?它是通過一個“資源的標(biāo)記”來聯(lián)系,這個“資源的標(biāo)記”就是資源符號。,1.2.4連接器和調(diào)試器,VC6.0集成開發(fā)環(huán)境提供了很方便的功能之一:編輯、連接、編譯和運(yùn)行的一體化。原本連接器要做的工作就是將C/C++編譯器產(chǎn)生的OBJ文件和資源編譯器生成的RES文件連接起來。而現(xiàn)在這個步驟在VC6.0中對程序員來說是透明的。調(diào)試器是VC6.0中查找程序錯誤的工具,該工具跟語法分析過程的語法錯誤提示不同。首先應(yīng)該理解程序從開發(fā)到使用中可能會發(fā)生兩種錯誤:語法錯誤和邏輯錯誤。語法錯誤是在編譯時就會發(fā)現(xiàn)的,而在程序出現(xiàn)語法錯誤時,編譯程序不再向下進(jìn)行,因此也不會產(chǎn)生執(zhí)行文件,這種錯誤可以通過編譯器提示和語法使用手冊進(jìn)行排除。直至通過編譯為止。邏輯錯誤是指通過了編譯,并且生成了執(zhí)行程序,在用戶使用該軟件中,出現(xiàn)的邏輯上或業(yè)務(wù)上的矛盾或錯誤。同時邏輯錯誤還包括運(yùn)行時對數(shù)組等越界的訪問的語義錯誤。如a[5]數(shù)組,用戶指定一個i的值為8,并執(zhí)行了a[i]訪問,則此時的行為是未定義的。而在此之前,該程序確實是編譯通過的,并生成了執(zhí)行文件。,1.2.5VC6.0的主要菜單項功能,VC6.0是集成開發(fā)環(huán)境,同時也是一種軟件,因此也具備一般應(yīng)用軟件的操作界面。VC6.0的頂級菜單項有9個:File:提供對源文件、資源文件和項目的新建、打開和保存等功能。Edit:提供對源文件的編輯功能,包括復(fù)制粘貼等操作。View:提供給用戶查看調(diào)試窗口,或設(shè)置開發(fā)環(huán)境視圖等功能。Insert:提供新建類或插入文件到項目等功能。Project:提供了對整個項目的設(shè)置功能。Build:提供啟動編譯和運(yùn)行等功能。Tools:提供一些額外的工具以幫助開發(fā)者提高軟件開發(fā)效率和質(zhì)量。Windows:提供窗口顯示和切換功能。Help:提供幫助信息。,1.2.6項目和解決方案,VC6.0支持同一個解決方案上若干個項目的運(yùn)行,前文所創(chuàng)建的“test”項目是在一個工作臺上的單獨(dú)項目。在VC6.0集成開發(fā)環(huán)境中,自動生成的文件“.dsp”就是存儲本項目的特定信息,而“.dsw”是存儲一個或多個項目的解決方案。,1.2.7本機(jī)幫助和聯(lián)機(jī)幫助,使用幫助在軟件開發(fā)中是常用的手段,由于VC6.0所涉及的技術(shù)繁多,可以安裝的MSDN實際上只是所有VC6.0幫助的一個子集,因此在本機(jī)幫助得不到滿意的答案時,可以使用聯(lián)機(jī)幫助。幫助一般可以使用以下幾種方式進(jìn)行搜索:按F1鍵。如果沒有選定任何關(guān)鍵詞,按F1鍵將調(diào)用本機(jī)MSDNHTMLHELP對話框,然后直接進(jìn)行搜索。如果選定了某一關(guān)鍵詞,則跳出的對話框直接定位到找到的該關(guān)鍵字的相關(guān)解釋。根據(jù)書為單位進(jìn)行查詢。單擊“Help”菜單,選擇“Content”命令將調(diào)用幫助文件,該文件將vc6.0集成開發(fā)環(huán)境和Win32SDK等按照章節(jié)編寫成書。根據(jù)主體進(jìn)行查詢。單擊“Help”菜單,選擇“Search”命令將調(diào)用輸入關(guān)鍵字相關(guān)的主題和文章。,1.3Win32基本應(yīng)用程序的創(chuàng)建,本小節(jié)將講解Win32的基本概念以及Win32應(yīng)用程序的創(chuàng)建,并在最后一小節(jié)講解在Win32應(yīng)用程序中使用VC6.0的調(diào)試功能。,1.3.1使用AppWizard應(yīng)用程序向?qū)?Win32一般是指Windows的32位操作系統(tǒng),Windows從16位開始,到32位(Win98/Me/2000/NT/XP/2003等),現(xiàn)在是64位(XP有64位版的,Vista是典型的64位操作系統(tǒng)),現(xiàn)在Win32編程一般被通用來指在Windows平臺下進(jìn)行軟件開發(fā)。而Win32SDK(SoftwareDevelopmentKit,軟件開發(fā)包)則是在Windows的32位操作系統(tǒng)下提供的軟件編程的接口,是為Windows操作系統(tǒng)的應(yīng)用軟件提供了可擴(kuò)展的函數(shù)接口。VC6.0可以很方便地創(chuàng)建Win32程序,過程如下:(1)使用VC6.0創(chuàng)建新項目。(2)選擇創(chuàng)建Win32應(yīng)用程序,并可將項目命名為“Win32”或其他用戶自定義名稱。該圖所示主要是用于選擇應(yīng)用程序類型和設(shè)置項目名稱。(3)選擇創(chuàng)建簡單的Win32應(yīng)用程序,該圖所示是設(shè)置某特定應(yīng)用程序的子類型。選擇“Atypical”HelloWorld!”application”單選框,然后單擊“Finish”按鈕結(jié)束向?qū)гO(shè)置。,,,選擇創(chuàng)建Win32應(yīng)用程序創(chuàng)建Win32類型,1.3.2Win32應(yīng)用程序的生成,在前文創(chuàng)建了一個Win32應(yīng)用程序,生成了包含winMain函數(shù)的C++源文件,如圖所示,該圖所示是Win32應(yīng)用程序的開發(fā)界面。編譯并運(yùn)行該程序可直接按F5鍵,運(yùn)行效果如圖所示。Win32應(yīng)用程序?qū)τ诔鯇W(xué)者雖然剛開始有點(diǎn)復(fù)雜,但無非就是幾個部分:winMain()函數(shù),負(fù)責(zé)調(diào)用其他功能函數(shù)。MyRegisterClass()函數(shù),負(fù)責(zé)注冊窗口的各項信息。InitInstance()函數(shù),負(fù)責(zé)初始化。WndProc()函數(shù),負(fù)責(zé)處理消息循環(huán)。,,,Win32程序向?qū)傻墓ぷ鲄^(qū)Win32應(yīng)用程序運(yùn)行界面,1.3.3VC6.0的調(diào)試:變量跟蹤和函數(shù)調(diào)用棧,變量跟蹤和函數(shù)調(diào)用棧查看是VC6.0常用調(diào)試方法。以1.3.2的Win32應(yīng)用程序為例,在WndProc()函數(shù)的“switch(message)caseWM_PAINT”程序段插入一些代碼,用來測試變量跟蹤信息:,,調(diào)試界面,1.4Microsoft應(yīng)用程序框架,本小節(jié)主要介紹Microsoft的應(yīng)用程序框架,著重MFC的框架介紹,讓讀者對VC6.0的使用有個代碼框架的概念。,1.4.1全局對象,通過1.1小節(jié)的學(xué)習(xí),發(fā)現(xiàn)用VC6.0創(chuàng)建一個MFC程序是非常容易的,細(xì)心的讀者在閱讀源代碼過程中可能會發(fā)現(xiàn),MFC程序怎么沒有主函數(shù)?這也讓很多習(xí)慣于C語言面向?qū)ο缶幊痰淖x者感到無從下手,覺得不能理解程序運(yùn)行順序。事實上,任何軟件程序都有入口,否則操作系統(tǒng)無法調(diào)用它,也就是說無入口的軟件程序是不能執(zhí)行的。在到處都是類定義和類實現(xiàn)的MFC程序中,可以在1.1節(jié)創(chuàng)建的“test”項目的test.cpp源文件中找到一個在全局區(qū)域定義的對象:CTestApptheApp;,1.4.2MFC的消息映射和消息分類,根據(jù)處理函數(shù)和處理過程的不同,MFC主要處理三類消息:Windows消息,前綴以“WM_”打頭,WM_COMMAND例外??刂仆ㄖ?,是控制子窗口送給父窗口的WM_COMMAND通知消息。命令消息,這是來自菜單、工具條按鈕、加速鍵等用戶接口對象的WM_COMMAND通知消息,屬于應(yīng)用程序自己定義的消息。注意:在本書第二篇中會詳細(xì)講解各種消息的意義和使用,在這里了解消息種類即可。MFC的消息映射過程是Windows消息直接送給MFC窗口過程處理,窗口過程調(diào)用對應(yīng)的消息處理函數(shù)。一般,由窗口對象來處理這類消息,也就是說,這類消息處理函數(shù)一般是MFC窗口類的成員函數(shù)。,1.5實例1.1-編寫第一個C++程序:Hello,C++!,本小節(jié)通過空項目來創(chuàng)建C++程序,這個創(chuàng)建過程很重要,對于第二章的所有例子,都是基于這種創(chuàng)建方法,也是學(xué)習(xí)C++語言理論進(jìn)行實驗的基本前提。創(chuàng)建過程如下:,,,填寫C++代碼第一個C++程序運(yùn)行的結(jié)果,1.6實例1.2-創(chuàng)建第一個MFC程序:Hello,MFC!,本小節(jié)主要講解創(chuàng)建MFC程序,其實在1.1小節(jié)已經(jīng)將MFC程序創(chuàng)建過程介紹完畢,因此在本小節(jié)就在1.1小節(jié)的“test”項目的基礎(chǔ)上簡單介紹MFC程序的輸出。在“test”項目中,打開FilesView選項卡,打開testView.cpp文件,修改voidCTestView::OnDraw(CDC*pDC)函數(shù)。voidCTestView::OnDraw(CDC*pDC){CTestDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);//以下兩行為新增代碼tagRECTa={100,100,200,200};pDC->DrawText("Hello,MFC!",},1.7小結(jié),到目前為止,本章就全部結(jié)束了。本章主要是概要性了解VC6.0的開發(fā)環(huán)境的安裝和界面的一些基本操作,讀者通過閱讀本章,應(yīng)該掌握的問題如下:VC6.0的安裝,自己動手安裝VC6.0及其MSDN。了解VC6.0的菜單的功能。學(xué)會創(chuàng)建各種不同類型的VC項目。了解VC6.0的應(yīng)用程序框架。,- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- VC6 開發(fā) 環(huán)境 應(yīng)用程序 框架
鏈接地址:http://kudomayuko.com/p-11498199.html