Windows程式內部執行機制

2021-09-29 04:26:05 字數 2145 閱讀 2874

我們在寫c程式的時候會呼叫各種庫函式來輔助完成某些功能,例如printf,這就是api,windows作業系統提供了1000多種api函式。

軟體開發包(software development kit)

假如我們要開發呼叫中心,在購買語音卡的同時,廠商就會提供語音卡的sdk開發包,以方便我們對語音卡的程式設計操作,這個開發包通常會包含語音卡的api函式庫、幫助文件、使用手冊、輔助工具等資源。

api和sdk是一種廣泛使用的專業術語,並沒有專指某一種特定的api和sdk。

乙個windows應用程式至少有乙個視窗,稱為主視窗,接收使用者輸入,顯示輸出。視窗分為客戶區和非客戶區,客戶區中顯示文字或繪製圖形,非客戶區指標題欄、選單欄、系統選單、最小化框、最大化框等,他們由windows系統來管理。應用程式主要管理客戶區的外觀和操作。

在windows應用程式中,視窗時通過視窗控制代碼(hwnd)來標識的。我們要對某個視窗進行操作,首先要得到這個視窗的控制代碼。

控制代碼(handle),在windows程式中,系統在建立視窗、圖示、游標等資源的時候會為他們分配記憶體,並返回標識這些資源的標識號,即控制代碼。

視窗控制代碼(hwnd)

圖示控制代碼(hicon)

游標控制代碼(hcursor)

畫刷控制代碼(hbrush)

windows程式設計是一種事件驅動方式的程式設計模式,主要是基於訊息的。例如,當使用者在畫圖的時候,按下滑鼠左鍵,此時,作業系統會感知到這一事件,於是將這個事件包裝成乙個訊息,投遞到應用程式的訊息佇列中,然後應用程式從訊息佇列中取出訊息並進行響應。在這個處理過程中,作業系統也會給應用程式「傳送訊息」,即作業系統呼叫程式中乙個專門負責處理訊息的函式,這個函式稱為視窗過程。

typedef struct tagmsg  msg;
每乙個windows應用程式在開始執行後,系統都會為該程式建立乙個訊息佇列,這個訊息佇列用來存放該程式建立的視窗訊息。

windows將產生的訊息依次放入訊息佇列中,而應用程式則通過乙個訊息迴圈不斷的從訊息佇列中取出訊息,並進行響應。

進隊的訊息將由系統放入應用程式的訊息佇列中,由應用程式取出並傳送。

不進隊的訊息在系統呼叫視窗過程時直接傳送給視窗

winmain函式是windows程式的入口點函式,與dos程式的入口函式main的作用相同,當winmain函式結束或者返回時,windows應用程式結束。

1.建立視窗

設計乙個視窗類

註冊視窗類

建立視窗

顯示及更新視窗

2.訊息迴圈用於處理傳送給視窗的訊息。

```cpp

#include #include lresult callback winmyproc(

hwnd hwnd,//視窗控制代碼

uint umsg,//訊息識別符號

wparam wparam,//訊息的附加資訊wparam 型別為unsigned int

lparam lparam//訊息的附加資訊lparam 型別為long

);int winapi winmain(

hinstance hinstance,//程式當前執行的例項的控制代碼,這是乙個數值

hinstance hprevinstance,//當前例項的前乙個例項的控制代碼,在win32環境下,這個引數總為null

lpstr lpcmdline,//指定傳遞給應用程式的命令列引數,是乙個以空終止的字串

int ncmdline//指定程式的視窗應該如何顯示,最大化、最小化、隱藏等,一般不需要去理會

) return msg.wparam;

}//編寫視窗過程函式

lresult callback winmyproc(hwnd hwnd, uint umsg, wparam wparam, lparam lparam)

break;

case wm_destroy:

postquitmessage(0);

break;

default:

return defwindowproc(hwnd, umsg, wparam, lparam);

} return 0;

}

Windows程式內部執行機制

2 sdk software development kit 軟體開發包 3 常用控制代碼 視窗控制代碼 hwnd 位圖控制代碼 hbitmap 圖示控制代碼 hicon 選單控制代碼 hmenu 檔案控制代碼 hfile 當前例項控制代碼 hinstance 全域性記憶體物件控制代碼 hgloba...

Windows應用程式執行機制(筆記)

windows應用程式 以 windows 作為平台執行的應用程式。api函式 api函式 windows 提供了大量可以在應用程式中呼叫的,用 c語言編寫的函式。windows api 函式的功能如下 1.視窗管理函式 實現視窗的建立 移動和修改等功能。2.圖形裝置函式 實現圖形的繪製及操作功能,...

HelloWorld 程式執行機制

1.隨便新建乙個資料夾,存放 新建乙個j a檔案檔案字尾名為.j a helloworld.j a 注意點 系統可能沒有顯示檔案字尾名,我們需要手動開啟3.編寫 public class helloworld 4.編譯j ac j a檔案,會生成乙個class檔案 5執行class檔案,j a cl...