




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 程序是怎樣“碼 成的 程序是怎樣 碼”成的 程序的入口點(diǎn)及啟動(dòng)函數(shù) Windows應(yīng)用程序必須擁有一個(gè)在應(yīng)用程序啟動(dòng)運(yùn)行時(shí)調(diào)用的進(jìn)入點(diǎn)函數(shù)(Main),操作 系統(tǒng)實(shí)際上并不調(diào)用你編寫的進(jìn)入點(diǎn)函數(shù)。以C/C+為例子,它調(diào)用的是C/C+運(yùn)行期啟動(dòng) 函數(shù)。該函數(shù)負(fù)責(zé)對(duì)C/C+運(yùn)行期庫進(jìn)行初始化,這樣,就可以調(diào)用malloc和free之類的函數(shù) 。它還能夠確保已經(jīng)聲明的任何全局對(duì)象和靜態(tài)C+對(duì)象能夠在代碼執(zhí)行以前正確地創(chuàng)建。 應(yīng)用程序類型 需要ANSI字符和字符串的GUI應(yīng)用程序 需要Unicode字符和字符串的GUI應(yīng)用程序 需要ANSI字符和字符串的CUI應(yīng)用程序 需要Unicode字符和字符串
2、的CUI應(yīng)用程序 進(jìn)入點(diǎn) WinMain wWinMain main wmain 嵌入可執(zhí)行文件的啟動(dòng)函數(shù) WinMainCRTStartup wWinMainCRTStartup mainCRTStartup wmainCRTStartup、 鏈接程序負(fù)責(zé)在它連接可執(zhí)行文件時(shí)選擇相應(yīng)的C/C+運(yùn)行期啟動(dòng)函數(shù)。如果設(shè)定了 /Subsystem:windows連接程序開關(guān),那么該鏈接程序期望找到一個(gè)WinMain或wWinmain 函數(shù)。如果這兩個(gè)函數(shù)都不存在,連接程序便返回一個(gè)"未轉(zhuǎn)換的外部符號(hào)"的錯(cuò)誤消息。 否則,它可以分別選擇WinMainCRTStartup函數(shù)或wW
3、inMainCRTStartup函數(shù)。 程序是怎樣“碼 成的 程序是怎樣 碼”成的 應(yīng)用程序的消息循環(huán) 在早年直接用Win32/Win16 API寫程序的時(shí)代,消息循環(huán)是我們必須搞懂的第一個(gè)觀念?,F(xiàn)在,不管你用是 Windows上面的哪一套Application Framework(MFC、VCL、VB、.NET Framework),甚至Unix、Linux、 MacOSX上面的Application Framework,都不太容易看到消息循環(huán)。事實(shí)上,消息循環(huán)依然存在,只是被這些 ApplicationFramework包裝起來,深深地埋藏在某個(gè)角落。 1、從_tWinMain內(nèi),程序進(jìn)入
4、主消息循環(huán); 2、消息循環(huán)從消息隊(duì)列(Message Queue)中取得一個(gè)消息(透過調(diào)用GetMessage()。每個(gè)執(zhí)行中的程序都有一個(gè) 屬于自己的消息隊(duì)列; 3、消息循環(huán)根據(jù)消息內(nèi)容來決定消息應(yīng)該送給哪個(gè)Windows Procedure(WndProc),. 這就稱為消息分發(fā)(Message Dispatch)。通常“每一種”窗口或控件(control)都有一個(gè)Windows Procedure,來處理該種窗口/控件的行為; 4、Windows Procedure根據(jù)消息內(nèi)容來決定應(yīng)該調(diào)用哪個(gè)函數(shù)(利用Switch/Case語法);. 5、Windows Procedure處理完,控制
5、權(quán)回到消息循環(huán)。繼續(xù)進(jìn)行2、3、4、5的動(dòng)作; 6、當(dāng)消息隊(duì)列為空的時(shí)候,GetMessage(無法取得任何消息,就會(huì)進(jìn)入Idle(空閑)狀態(tài),進(jìn)入睡眠狀態(tài)(而不是 Busy Waiting)。當(dāng)消息隊(duì)列不再為空的時(shí)候,程序會(huì)自動(dòng)醒過來,繼續(xù)進(jìn)行2、3、4、5的動(dòng)作; 7、當(dāng)取得的消息是WM_QUIT,GetMessage(就會(huì)得到0的返回值,因而離開消息循環(huán),程序結(jié)束。程序會(huì)利用調(diào)用 PostQuitMessage(來將WM_QUIT放置進(jìn)消息隊(duì)列中,來造成稍后結(jié)束,而不會(huì)直接貿(mào)然跳離開循環(huán)來結(jié)束。 代碼之美 1. 代碼規(guī)范 1. 2. 3. 注釋 命名 代碼風(fēng)格 我們這里的代碼之美只在于代碼的外觀,寫出的代碼工整,邏輯 我們這里的代碼之美只在于代碼的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度家庭護(hù)理員培訓(xùn)服務(wù)意定監(jiān)護(hù)協(xié)議書模板
- 2025年度特種工程設(shè)備租賃與施工合同
- 2025年度上市企業(yè)財(cái)務(wù)代理及審計(jì)服務(wù)合同
- 2025年度旅游產(chǎn)業(yè)合伙人合作協(xié)議書范本
- 2025年生態(tài)大棚建設(shè)與可再生能源利用合同
- 科技產(chǎn)業(yè)下的社交網(wǎng)絡(luò)創(chuàng)新發(fā)展
- 社交媒體運(yùn)營團(tuán)隊(duì)的建設(shè)與管理
- 婚慶策劃居間服務(wù)協(xié)議合同
- 二零二五年度辦公用品品牌代理居間合作協(xié)議
- 二零二五年度辦事處廣告代理與廣告創(chuàng)意設(shè)計(jì)合同
- 物聯(lián)網(wǎng)管理平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)
- 1例妊娠糖尿病的個(gè)案護(hù)理
- 《排球正面雙手傳球》課件
- 光伏發(fā)電職業(yè)病危害預(yù)評(píng)價(jià)方案方案
- 財(cái)務(wù)報(bào)表涉稅分析
- 五官科眼耳鼻咽喉科醫(yī)療常用器械的認(rèn)識(shí)
- 企業(yè)清產(chǎn)核資報(bào)表
- 淺談建筑工程機(jī)電安裝施工技術(shù)運(yùn)用論文
- 2023年新改版教科版四年級(jí)下冊(cè)科學(xué)練習(xí)題(一課一練+單元+期中+期末)
- 婦產(chǎn)科護(hù)理學(xué)課程標(biāo)準(zhǔn)
- 《字體設(shè)計(jì)》模塊五 裝飾性變化設(shè)計(jì)技巧的訓(xùn)練
評(píng)論
0/150
提交評(píng)論