黄色在线观看视频-黄色在线免费看-黄色在线视频免费-黄色在线视频免费看-免费啪啪网-免费啪啪网站

首頁 考試吧論壇 Exam8視線 考試商城 網絡課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載
2012中考 | 2012高考 | 2012考研 | 考研培訓 | 在職研 | 自學考試 | 成人高考 | 法律碩士 | MBA考試
MPA考試 | 中科院
四六級 | 職稱英語 | 商務英語 | 公共英語 | 托福 | 托業 | 雅思 | 專四專八 | 口譯筆譯 | 博思
GRE GMAT | 新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學習 |
零起點法語 | 零起點德語 | 零起點韓語
計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證
華為認證 | Java認證
公務員 | 報關員 | 銀行從業資格 | 證券從業資格 | 期貨從業資格 | 司法考試 | 法律顧問 | 導游資格
報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師
人力資源 | 管理咨詢師 | 秘書資格 | 心理咨詢師 | 出版專業資格 | 廣告師職業水平 | 駕駛員
網絡編輯 | 公共營養師 | 國際貨運代理人 | 保險從業資格 | 電子商務師 | 普通話 | 企業培訓師
營銷師
衛生資格 | 執業醫師 | 執業藥師 | 執業護士
會計從業資格考試會計證) | 經濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務師
注冊資產評估師 | 高級會計師 | ACCA | 統計師 | 精算師 | 理財規劃師 | 國際內審師
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監理工程師 | 安全工程師
質量工程師 | 物業管理師 | 招標師 | 結構工程師 | 建筑師 | 房地產估價師 | 土地估價師 | 巖土師
設備監理師 | 房地產經紀人 | 投資項目管理師 | 土地登記代理人 | 環境影響評價師 | 環保工程師
城市規劃師 | 公路監理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師
化工工程師 | 材料員
繽紛校園 | 實用文檔 | 英語學習 | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲
計算機等級考試
您現在的位置: 考試吧(Exam8.com) > 計算機等級考試 > 計算機二級 > C加加 > 復習資料 > 正文

2012年計算機等考二級C++備考筆記(十一)

來源:考試吧Exam8.com) 2012-7-24 10:19:21 考試吧:中國教育培訓第一門戶 模擬考場

  Windows內部運行機制

  Windos系統提供了各種各樣的函數,這些函數是windows操作系統提供給應用程序的接口 Application Progress Interface,所有主要的windows函數都在Windows.h頭文件中進行了聲明。

  Win32 SDK(Soft Development Kit)是Windows 32平臺下的軟件開發包,包括API函數,幫助文檔和一些輔助開發工具。

  Windows是基于消息機制的,消息分標準消息,命令消息和通告消息。Windows程序中的消息又分進隊消息和不進隊消息,兩種消息都由消息響應函數進行處理。

  在VC中創建一個win32應用程序的大概流程如下:

  編寫WinMain函數;

  設計窗口類(WNDCLASS);

  注冊窗口類(RegisterClass);

  創建窗口(CreateWindow);

  顯示并更新窗口(ShowWindow|UpdateWindow);

  編寫消息循環;

  編寫窗口過程函數。

  一個WinMain函數的原型如下:

  int WINAPI WinMain(

  HINSTANCE hInstance, // handle to current instance

  HINSTANCE hPrevInstance, // handle to previous instance

  LPSTR lpCmdLine, // command line

  int nCmdShow // show state

  );此處WINAPI是一個_stdcall宏定義,VC有很多宏定義,這個很讓人頭大,需要慢慢去習慣,從網絡上找了2中函數定義的說明與區別解釋。

  __cdecl:這是編譯器默認的函數調用轉換方式,它可以處理可變參數的函數調用。參數的入棧順序是從右向左。在函數運行結束后,由調用函數負責清理入棧的參數。在編譯時,在每個函數前面加上下劃線(_),沒有函數名大小寫的轉換。即_functionname.每一個調用它的函數都包含清空堆棧的代碼,所以產生的可執行文件大小會比調用_stdcall函數的大。函數采用從右到左的壓棧方式。

  __stdcall:函數參數從右向左入棧,被調用函數負責入棧參數的清理工作。函數名轉換格式如下:_functionname@number.函數參數個數固定。

  WINDOWS 的函數調用時需要用到棧( STACK ,一種先入后出的存儲結構)。當函數調用完成后,棧需要清除,這里就是問題的關鍵,如何清除?

  如果函數使用 _cdecl ,那么棧的清除工作是由調用者,用 COM 的術語來講就是客戶來完成的。這樣帶來了一個棘手的問題,不同的編譯器產生棧的方式不盡相同,那么調用者能否正常的完成清除工作呢?答案是不能。

  如果使用 __stdcall ,上面的問題就解決了,函數自己解決清除工作。所以,在跨(開發)平臺的調用中,我們都使用 __stdcall (雖然有時是以 WINAPI 的樣子出現)。

  那么為什么還需要 _cdecl 呢?當我們遇到這樣的函數如 fprintf() 它的參數是可變的,不定長的,被調用者事先無法知道參數的長度,事后的清除工作也無法正常的進行,因此,這種情況我們只能使用 _cdecl。

  到這里有一個結論,如果你的程序中沒有涉及可變參數,最好使用 __stdcall 關鍵字,我們創建一個Win32應用程序都是用的系統API函數,參數固定,所以都用__stdcall了。

  設計窗口類、冊窗口類、創建窗口、顯示并更新窗口通常一起完成,MSDN中有詳細的說明,可以根據一些默認參數修改窗口樣式。在完成窗口的設計,創建更新后,需要創建一個消息循環。

  MSG msg;

  while(GetMessage(&msg,NULL,0,0))//消息循環

  {

  TranslateMessage(&msg);//將虛擬鍵值消息轉化為字符消息,并將字符消息投遞到消息隊列中

  DispatchMessage(&msg);//分派一個消息窗口,對消息進行處理

  }

  GetMessage函數接收到的消息除了WM_QUIT外都返回非零值。

  消息響應函數對消息隊列中的消息事件執行處理,在窗口初始化的時候將函數的指針提供給窗口,當事件發生的時候調用函數,消息響應函數在定義前必須在窗口注冊,創建等過程前事先聲明。

  DC:Device Contex,是一個包含設備信息的結構體,這個地方的概念不大容易理解。

  Windows創建了自己的命名約定,稱之為匈牙利命名法,通常在變量前面加上一些前綴字符。

  最后,把原書的代碼抄一遍,雖然是照的書本寫,過程中還是出了一些錯誤,好不容易才調試完。VC開發環境的提示功能幾乎為零,god!

1 2 3 下一頁

  相關推薦:

  2012年計算機等考四級數據庫工程師備考筆記匯總

  2012年計算機等級考試二級VB重點知識匯總

  2012年下半年計算機等級考試報名時間及入口匯總

文章責編:renyinan  
看了本文的網友還看了
文章搜索
版權聲明:如果計算機等級考試網所轉載內容不慎侵犯了您的權益,請與我們聯系800@exam8.com,我們將會及時處理。如轉載本計算機等級考試網內容,請注明出處。
主站蜘蛛池模板: 美女视频网站黄色 | 二区久久国产乱子伦免费精品 | 日韩精品网站 | 日日做日日摸夜夜爽 | 一区二区三区在线免费视频 | 天天操婷婷 | 青青草成人影视 | 亚洲第一精品夜夜躁人人爽 | 99精品国产成人一区二区在线 | 国产精品久久久久无毒 | 日本韩经典三级在线播放 | 精品女同一区二区三区在线观看 | 免费国产小视频在线观看 | 日本在线视频一区二区三区 | 天天干夜夜爽天天操夜夜爽视频 | 欧美日韩国产免费一区二区三区 | 日韩欧美亚洲一区二区综合 | 日本精品一二三区 | 毛片无码国产 | 成人18免费| 亚洲欧美一级久久精品 | 黄色短视频网站 | 狠狠操免费视频 | 国产成人精品综合久久久 | 18videosex性vr日| 免费不卡中文字幕在线 | 日本三级网站在线观看 | 黄色顶级视频 | 一级特级欧美午夜片免费观看 | 一区二区在线欧美日韩中文 | 狠狠操免费视频 | 午夜视频免费在线播放 | 日韩在线 | 中文 | 日本妇人成熟免费观看18 | 夜夜摸天天操 | 一级片免费观看视频 | 首页 国产 制服 丝袜 | 在线观看你懂的网址 | 最好看的中文字幕2019免费 | 亚洲一区二区三区精品影院 | 国产黄色免费观看 |