《WINDOW程序設計第3章》由會員分享,可在線閱讀,更多相關《WINDOW程序設計第3章(13頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,*,第,3,章 開發(fā),Windows,應用程序的技術(shù)基礎,本章主要目的是向讀者介紹編寫,Windows,應用程序所采用的基本技術(shù),約定和慣例,,API,的結(jié)構(gòu)與基本用法等作了介紹,對,Windows,應用程序的各個組成部分也作了初步介紹,并用框圖的形式介紹,Windows,應用程序的工作原理,3.1,應用程序的結(jié)構(gòu)與編譯,解決多任務的關鍵是,:,控制核心應該從程序本身轉(zhuǎn)移到,Windows,操作系統(tǒng)。應該由,Windows,操作系統(tǒng)決定那個應用程序可以占用,CPU,時間,程序的結(jié)構(gòu)也不再是過程式程序中的
2、賦值、循環(huán)、分支等,C,語言中常見的結(jié)構(gòu),而是消息,處理。為了解決這個問題,應用程序采用一種稱為”事件驅(qū)動結(jié)構(gòu)”是合適的。所謂非搶占式是指一旦這個應用程序取得了執(zhí)行權(quán),就一直要把這個程序執(zhí)行下去,除非遇到新的消息來干預。否則,其他程序沒有辦法執(zhí)行。如果把非搶占式和”事件驅(qū)動結(jié)構(gòu)相結(jié)合,那就是,Win16,操作系統(tǒng)下的應用程序。,3.1.1 Windows,應用程序的結(jié)構(gòu)和,C,語言程序結(jié)構(gòu)的比較,請見,Windows,應用程序的結(jié)構(gòu)和,C,語言程序結(jié)構(gòu)的比較,C,語言程序的主體結(jié)構(gòu)是,Main(),定義函數(shù),1,定義函數(shù),2,。,定義函數(shù),n,C,語言程序的主體結(jié)構(gòu)是主函數(shù),Main,和一些函
3、數(shù)定義所組成。,而,Windows,應用程序的結(jié)構(gòu)可以用下面的框圖來表示。,WinMain,Windows Function,圖,3-1,Windows,應用程序的結(jié)構(gòu)有兩個函數(shù)所組成,一個是,WinMain,函數(shù),另一個稱為窗口函數(shù),又稱窗口消息處理程序。,3.1.2 Windows,應用程序的編譯和,C,語言程序編譯的比較,C,語言的編譯圖示,(,請見,教材程序,3C,語言的編譯用圖表示如下,.doc,Windows,應用程序編譯圖示,(,請見,教材程序,3Windows,應用程序編譯系統(tǒng),.doc,).,Windows,應用程序編譯系統(tǒng)工作步驟(請見,教材程序,3,編譯系統(tǒng)的工作過程,.
4、doc,),。,編譯應用程序所需的六個基本文件,什么資源文件與資源描述文件,(.RC),?在編譯中的作用?,模塊定義文件,(.DEF),的結(jié)構(gòu),(,請見,教材程序,3,模塊定義文件,.doc,),和在編譯中的作用?,頭文件,(.H),的作用?,WINDOWS.H,頭文件,(,請見,教材程序,3WINDOWS.H,頭文件,.doc,),。,WINDEF.H,頭文件,(,請見,教材程序,3WINDEF.,頭文件,.doc,),。,項目文件,(.MAKE),在編譯中的作用?,3.2 Windows,應用程序設計接口,(API),學習,API,的重要性。,簡要介紹兩種,API,。,每個,API,主要有
5、哪三個文件,(,請見,教材程序,3,三個核心,API,組件,.doc,),。,每個文件的作用。,3.3,標識符的匈牙利命名慣例,為什么此慣例稱為匈牙利命名慣例。,匈牙利命名慣例的兩條約定。,要熟悉很多習慣用法。例如,WPARAM,和,LPARAM,是習慣用法。,按照,匈牙利命名慣例,常用變量的字首,(,請見,教材程序,3,常用變量的字首,.doc,3.4,事件驅(qū)動程序設計,什么是,事件驅(qū)動程序設計,它與傳統(tǒng)程序設計有什么區(qū)別。,解釋圖,3-4,的工作原理(請見,教材程序,3,事件驅(qū)動程序的工作原理,.doc,),。,消息與消息處理是實現(xiàn)事件驅(qū)動的關鍵。,3.5,動態(tài)鏈結(jié)和動態(tài)鏈結(jié)庫,靜態(tài)連接和
6、動態(tài)連接的基本概念。,如何進行鏈結(jié)。,如何建立,DLL,文件請見其他有關文章和書籍。,3.6 PASCAL,與,WINAPI,調(diào)用規(guī)范,什么是,C,調(diào)用規(guī)范。,Win 16,中的,PASCAL,調(diào)用規(guī)范,(_,cdecl,),。,Win 32,中的,PASCAL,調(diào)用規(guī)范,(_,stdcall,),。,Win32,中的,WINAPI,調(diào)用規(guī)范,(_,stdcall,),。,比較,C,,,_,cdecl,,,_,stdcall,三種調(diào)用規(guī)范。,調(diào)用規(guī)范的同義詞,(,請見,教材程序,3,調(diào)用規(guī)范的同義詞,.doc,),。,3.7 Windows,應用程序的工作原理,句柄與代號,。,單一應用程序情況
7、下輸入消息的獲得與處理,(,請見,教材程序,3,單一應用程序情況,.doc,),。,消息循環(huán)程序及其解釋,(,請見,教材程序,3,消息循環(huán),.doc,),。,應用程序的結(jié)束,(,請見,教材程序,3,應用程序的結(jié)束,.doc,),。,窗口類的作用及其用法初步,3.8,窗口類的作用及其用法初步,每個,Windows,應用程序,(,或進程,),都要有一個窗口,每個窗口代表一個應用程序。,窗口類結(jié)構(gòu)與窗口類是不同又有聯(lián)系的概念。,應用程序建立窗口的大概過程。,練習,3,1.,16,位和,32,位,Windows,操作系統(tǒng)對應用程序的支持有什么不同,?,2.,Windows,應用程序的編譯和,C,語言程
8、序編譯有什么不同,?,3.,資源描述文件的作用是什么,?,資源編譯器的功能是什么,?,4.,資源文件與資源描述文件,(.RC),的區(qū)別?,5.,模塊定義文件,(.DEF),在編譯中的作用?,6.WINDOWS.H,頭文件的作用?,WINDEF.H,中定義了那些東西?,WINNT.H,頭文件的作用?,7.,項目文件的作用?,8.,簡述,程序設計接口,(API),的組成情況,9.,講講,匈牙利命名慣例的約定,還要記住那些習慣用法?,10.,解釋事件驅(qū)動程序的原理,并和過程式程序進行比較,11.,何謂動態(tài)連接?何謂靜態(tài)連接?動態(tài)連接庫文件的后綴是什么?,12.,Win32,里,微軟設計者們又定義了一種新的調(diào)用規(guī)范,用什么符號表示?,13.,介紹,PASCAL,調(diào)用規(guī)范,,C,調(diào)用規(guī)范,(,用,_,cdecl,表示,),,,_,stdcall,調(diào)用規(guī)范,14.W32,中有那些識別字都定義成,_,stdcall,15.,消息循環(huán)從應用程序消息隊列取得窗口消息是怎樣送給窗口消息處理程序,?,