程序的核心模組分析
模組就是程序的組成元素,比如乙個可執行程式的每乙個dll,每乙個.exe檔案都是乙個模組。
windows程序核心空間中最重要的就是以下兩個個模組:ntoskrnl.exe,win32k.sys模組。
在應用程式開始執行時,會將kernel.dll,user32.dll,gdi.dll載入到程序使用者空間。使用者建立程序,本質上只是呼叫kernel32.dll給提供的對ntoskrnl.exe的介面。視窗是畫出來的,我們使用user32.dll和gdi32.dll提供的介面來間接呼叫win32k.sys.
user32.dll是使用windows已經畫好的視窗,稱為gui程式設計。
gdi32.dll是自己繪製視窗,稱為gdi程式設計
hwnd的概念
所有的視窗都是在win32k.sys這個模組畫的,所有的視窗的真實位址都在win32k.sys模組的控制之中。win32k.sys提供了統一的控制代碼表,這個控制代碼表在所有的程序中都相同,這個控制代碼即為hwnd,而且每乙個視窗的控制代碼對於不同的程序相同。
對於gdi的理解
gdi(graphics device inte***ce),圖形裝置介面
使用gdi畫圖的幾個步驟
畫在**,裝置物件,就是標明畫在哪個視窗。
hwnd =(hwnd)null,將hwnd設定為空即可在桌面上畫
獲取裝置物件上下文,每個裝置都有快取區,我們必須先畫在快取區中。
hdc = getdc(hwnd)
設定圖形物件
hgdiobj hpen;
hpen = ceatepen(ps_solid,5,rgb(255,0,0);
關聯selectobject(hdc,hpen);
開始畫釋放資源
deleteobject(hpen)
releasedc(hdc)
windows api學習筆記 簡單的記事本
include include resource.h include lresult callback mainwndproc hwnd,uint,wparam,lparam 視窗函式的函式原型 int apientry winmain apientry是 stdcall的巨集定義 hinstanc...
linux開發必備的5本秘籍
有關核心的書籍可以用汗牛充棟來形容,不過只有一些經典的神作經住了考驗。首先是5本久經考驗的神作 個人概括為 2 1 2 第乙個2是指2本全面講解核心的書,中間的1指1本講解驅動開發的書,後面的2則指2本有關核心具體子系統的書,你是否想到了某某廣告裡三個人突然站起單臂齊舉高呼 1比1比1 的場景?一 ...
html5中的localStorage本地快取
早期的web中使用cookies在客戶端儲存諸如使用者名稱等簡單的資訊,但是,在使用cookies儲存永久資料存在以下問題。1.cookies的大小限制在4kb,不適合大量的資料儲存。2.瀏覽器還限制站點可以在使用者計算機上儲存的cookies的數量。3 cookies是隨http事務一起被傳送的,...