090909(星期三) 學習MFC二

2021-05-04 16:31:38 字數 1404 閱讀 4558

一、乙個程序的生命週期1,

shell

呼叫createprocess啟動

2,系統產生乙個進行核心物件(包括,

semaphore

,file,,

process

,thread)3

,系統為程序建立乙個位址空間

4,裝載**、檔案指標、

dll到程序位址空間

5,系統為程序建立乙個主線程

6,系統呼叫

starup code 7

,starup code

呼叫程式的

winmain函式8

,程式開始執行,開始訊息迴圈…

9,user

關閉主視窗,

winmain

的訊息迴圈結束,

winmain

函式結束返回

10,回到

starup code 11

,回到系統,系統呼叫

exitprocess

結束程序

由此可見,所以的

windows

程式都是

shell

的子程序。

二、windows

執行緒的生命週期

程式的功能通過執行緒來完成,程序產生時,主線程隨之產生,每個

windows

程式一開始就有乙個

thread

,也可以

createthread

生成其他的

thread

,系統會做:

1,配置

thread

物件,其

handle

是createthread

的返回值;

2,設定計數器

3,培訓

thread

的context 4,

保留tread

的堆疊5,

設定好context

中堆疊的ss和

ip thread

才是cpu

分配時間的基本單位,

context switch

也是對thread

的context

切換。三、

thread

的終結前兩天在看過一些資料,恰好這邊又有一些說明。

終結的兩種方式:

1 壽終正寢,在

thread

函式結束前使用

exitthread

做一些善後清理工作,不顯式呼叫也是這一樣的效果。

2 未得善終,強制使用

terminatethread

,終結者,少用,

api上有清楚的說明。

四、使用

_beginthreadex

代替createthread

封裝,並做一下記錄工作。

090916(星期三) MFC訊息路由1

一 命令路由 command routing 1 增加乙個函式列表 類與訊息迴圈相關的函式 注意none afxwndproc global none afxcallwndproc global ccmdtarget oncmdmsg virtual cdocument oncmdmsg virtu...

2016 6 1 星期三 晴

前兩天聚會完那兩天,寫了一篇日誌發給盧老師。他說他很少關注別人的字型,但是我的字型卻很特別,說我的字這麼多年了也沒有變變。如果乙個同學記得你的字型,也是一件很開心的事情,更何況是每年要面對很多學生的老師,二十年過去了,一切依然是那麼如昨般深刻和親切。在我的心裡,他早就如親人般了。今天俊琦做了乙個騰雲...

2021 01 20 星期三 工作總結

工作 1 上午測試給前端的車輛任務發布介面和車輛狀態查詢介面。2 下午測試車端車輛任務狀態上報介面。發現乙個問題,netty啟動不起來,查了半下午沒頭緒,最後找了啟君,他說看了好久說是可能是handller裡不能直接注入cicv system中寫的service,注入的 ivehicletaskst...