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