程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> Windows程序運行原理

Windows程序運行原理

編輯:C++入門知識

1. Windows應用程序,操作系統,計算機硬件之間的相互關系:   箭頭③對應API的調用   箭頭④對應操作系統返回事件給應用程序       2. 操作系統充當的角色   操作系統負責管理外圍設備,同時與上層的應用程序交互。而應用程序只需要調用相應的API就能實現對外圍設備的操作。操作系統充當一個中間角色。       3. API          應用程序是以函數調用的方式來通知操作系統執行相應的功能的。操作系統所能夠完成的每一個特殊功能通常都有一個函數與其對應。操作系統把它所能夠完成的功能以函數的形式提供給應用程序使用,應用程序對這些函數的調用就叫做系統調用,這些函數的集合就是Windows操作系統提供給應用程序編程的接口(Application Programming Interface),簡稱Windows API。如CreateWindow就是一個API函數,應用程序中調用這個函數,操作系統就會按照該函數提供的參數信息產生一個相應的窗口。     4. 消息和消息隊列          Windows程序是以事件驅動方式運行的,主要是基於消息。操作系統將每個感知的事件都包裝成一個稱為消息的結構體MSG來傳遞給應用程序。MSG結構如下示:   [cpp]   typedef struct tagMSG {             HWND   hwnd;  //一個消息總是與某個窗體相關聯的          UINT   message; //消息標識符,數值,對應WM_XXX的宏       WPARAM wParam; //附加消息       LPARAM lParam; //附加消息       DWORD  time; //投遞時間       POINT  pt; //鼠標當前位置   } MSG;   而應用程序則循環不斷地從消息隊列中取出消息,並進行響應,這就是消息機制。   注意到,操作系統為不同類型的應用程序維護不同的消息隊列。消息也分進隊和不進隊消息,進隊的消息由系統放入到應用程序的消息隊列中,不進隊的消息在系統調用窗口過程時直接發送給窗口。不管是進隊還是不進隊消息,最終都由系統調用窗口過程函數對消息進行處理。    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved