深入淺出MFC 第一章

2022-03-11 08:53:18 字數 1173 閱讀 4320

當使用者按下系統選單中的close命令項,系統送出wm_close。通常程式的視窗函式不攔截次訊息,於是defwindowproc函式處理它。defwindowproc收到wm_close後,呼叫destorywindow把視窗清除。destroywindow本身又會送出wm_destroy。程式對wm_destroy的標準反應是呼叫postquitmessage。postquitmessage沒什麼其它動作,就只送出wm_quit訊息,準備讓訊息迴圈退出。

所謂空閒時間(idle time),是指【系統中沒有任何訊息等待處理】的時間。舉個例子,沒有任何程式使用定時器(timer,它會定時送來wm_timer),使用者也沒有碰觸鍵盤和滑鼠或任何外圍裝置,那麼,系統就處在所謂的空閒時間。

空閒時間常常發生。不要認為你移動滑鼠時產生了一大堆的wm_mousemove,事實上夾雜在每乙個wm_mousemove之間就可能存在許多空閒時間。畢竟,計算機速度超乎想象。

後台工作最適宜在空閒時間完成。傳統的sdk程式如果要處理空閒時間,可以以下列迴圈取代winmain中傳統的訊息迴圈:

1

while

(true)

29 translatemessage(&msg);

10 dispatchmessage(&msg);11}

12else

1316 }

原因是peekmessage和getmessage的不同,getmessage是阻塞的,而peekmessage是非阻塞的。

console程式是指在windows下開發的不實用ui的控制台程式

dos程式是指在dos系統下開發的程式

讓我們看看整個流程:

2、系統產生乙個【程序核心物件】,計數值為1。

3、系統為此程序建立乙個4gb的位址空間。

5、系統為此程序建立乙個執行執行緒,稱為主執行執行緒(primary thread)。執行執行緒才是cpu時間的分配物件。

6、系統呼叫c runtime函式庫的startup code。

10、回到startup code。

11、回到系統,系統呼叫exitprocess結束程序。

可以說,透過這種方式執行起來的所有程式都是shell的子程序。本來,父程序與子程序之間可以有某些關係存在,但shell在呼叫createprocess時已經把這種關係剪斷,因此它們是獨立的例項。

深入淺出DPDK 第一章

用軟體的方式在通用多核處理器上,演繹著資料報處理的新篇章 1 硬體加速器 2 網路處理器 3 多核處理器 dpdk主要是以ia intel architecture 多核處理器為目標平台 問題1 cpu核數增多,然後核心驅動的收發包處理和使用者態執行緒,依舊由作業系統排程執行,這個會造成什麼新的問題...

第一章 深入淺出Web請求過程(筆記)

當使用者在瀏覽器裡輸入url後,首先會請求dns把這個網域名稱解析成對應ip位址,然後根據ip位址在網上找到對應伺服器,向這個伺服器發起乙個get請求,由這個伺服器決定返回預設的資料資源給訪問的使用者。在伺服器端實際上還有很複雜的業務邏輯 伺服器可能有多台,到底只用哪台伺服器來處理請求,還需要乙個負...

深入淺出MFC筆記

深入淺出mfc筆記 一 勿在浮砂築高台 1 並不是擴充套件名為 dll dynamic link library 的才是動態鏈結庫。事實上,exe dll fon mod drv 和.ocx 都是所謂的動態鏈結函式庫。2 windows 程式編譯時需要包含 windows.h 標頭檔案,若需要使用諸...