C 學習 Windows程式內部執行原理

2021-10-09 12:58:26 字數 2047 閱讀 8607

在windows下開發程式,首先要了解windows環境下程式的執行機制。但在windows內部,其執行機制是紛繁複雜的,沒有必要了解所有的技術細節。而了解windows程式執行的根本性概念是vc++程式設計師基本素質。

windows應用程式,作業系統,計算機硬體之間的相互互動如下所示:

typedef

struct tagmsg msg;

訊息結構體包含了與那個視窗相關(hwnd hwnd)、這個訊息是什麼(uint message)、訊息的附加引數(wparam wparam、lparam lparam)、訊息發生投遞的時間(dword time)、訊息投遞時光標的位置(point pt)。

//x和y既可以用來表示座標點,也可以用來表示寬度和高度,還可以用來表示身高和體重。

int x,y;

x=30

; y=30;

typedef

int width

typedef

int height

width x;

height y;

//好處:我們從變數的型別上就可以知道x和y是用來表示寬度和高度。

int winapi winmain

( hinstance hinstance,

// handle to current instance

hinstance hprevinstance,

// handle to previous instance

lpstr lpcmdline,

// command line

int ncmdshow // show state

);

typedef

struct _wndclass wndclass;

`

示例**如下:

#include

#include

lresult callback winsunproc

(//視窗過程函式windowproc()

hwnd hwnd,

// handle to window

uint umsg,

// message identifier

wparam wparam,

// first message parameter

lparam lparam // second message parameter);

int winapi winmain

(//程式入口函式

hinstance hinstance,

// handle to current instance

hinstance hprevinstance,

// handle to previous instance

lpstr lpcmdline,

// command line

int ncmdshow // show state

)return0;

}lresult callback winsunproc

(//視窗過程函式windowproc()

hwnd hwnd,

// handle to window

uint umsg,

// message identifier

wparam wparam,

// first message parameter

lparam lparam // second message parameter

)break

;case wm_destroy:

postquitmessage(0

);break

;default

:return

defwindowproc

(hwnd,umsg,wparam,lparam);}

return0;

}

致敬孫鑫老師。

Windows 程式內部執行原理

2.應用程式 作業系統 計算機裝置硬體互動 windows程式設計完全是基於訊息的事件驅動模式 使用者需要完成某種功能,會呼叫os 某種支援,os將使用者的需要包裝成訊息,投遞到應用程式訊息對列中,應用程式從訊息對列取走訊息,做出響應 os感知裝置的變化 如滑鼠移動,鍵盤按下,並知道具體資訊 表示o...

Windows程式內部機制(下)

include includelresult callback winsunproc hwnd hwnd,uint umsg,wparam wparam,lparam lparam int winapi winmain hinstance hinstance,hinstance hprevinsta...

Windows程式內部執行機制

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