框架原理第一讲,熟悉常用的设计方式.(以MFC框架讲解)
框架原理第一講,熟悉常用的設(shè)計方式.(以MFC框架講解)
一丶什么是框架,以及框架的作用
什么是框架?
框架,簡而言之就是把東西封裝好了,使用框架開發(fā)可以快速開發(fā)程序,例如MFC程序的雙擊寫代碼.
為什么講解框架原理
1.熟悉框架可以跟隨時代腳步,因為框架萬變不離其宗
2.熟悉框架,可以更快更好的逆向.
比如現(xiàn)在我們知道的QQ界面.
界面就是DUILIB框架寫的.我們要通過逆向找到關(guān)鍵的內(nèi)容必須熟悉框架.如果不熟悉框架,你就算會逆向也不知道從哪里入手.
?
二丶通過MFC但文檔,理解其設(shè)計方式.
因為是第一講,所以從頭講起.
MFC單文檔框架其底層是封裝的SDK的消息循環(huán)
首先我們要實現(xiàn)自己的框架,就要封裝類了.怎么封裝,或者說哪里比較困難?
1. API調(diào)用困難,所以封裝
2. API參數(shù)多,所以封裝.
3. 處理消息回調(diào).
API調(diào)用困難,我們可以封裝成一個類
處理消息回調(diào).我們也可以封裝成一個類,
既然封裝成類,那么就要使用虛函數(shù)進行操作了.
1.首先封裝WMain函數(shù)
2.每個類都要有一個公公的父類,這樣可以添加公共接口.但是注意,一旦添加了就不好刪除了.
?
三丶類代碼設(shè)計.
根據(jù)MFC單文檔框架可以得出繼承關(guān)系圖.
從最基礎(chǔ)的框架看起,只有一個三個類
1.公共父類CObject
2.消息處理類,CcmdTarGet 響應(yīng)消息
2.1 CWinThread ? ?消息處理
2.2 CWinApp ? 應(yīng)用程序初始化,顯示窗口
代碼實現(xiàn).
一丶實現(xiàn)類的關(guān)系圖繼承
首先按照繼承關(guān)系圖.添加類
父類 CMyObject ?消息處理類CMycmdTarGet 消息回調(diào)類 CMyWinThread 應(yīng)用程序初始化類 ?CMyWinApp
以及用戶新建的類 CTestWinApp,前面幾個類只是模擬MFC框架,自己定義的類,當我們用應(yīng)用程序向?qū)Ы㈩惖臅r候.則會生成自己的類(CTestWinApp)并且繼承自CMyWinAPP
二丶封裝WMain函數(shù)
按照MFC但文檔的框架
1.封裝WinMain
2.自己的WMain中執(zhí)行初始化代碼.初始化用戶的全局對象
因為我們顯示窗口或者注冊窗口的時候,需要調(diào)用用戶的InitInstance進行初始化.
所以用戶的類定義為全局變量.
,MyWmain里面執(zhí)行用戶的InitInstance
3.用戶的InITinstance里面執(zhí)行注冊窗口類,顯示窗口類.
添加的時候會遇到的問題
1.窗口過程函數(shù)沒有.這個需要封裝,但是因為是第一講,所以暫時不封裝
2.實例句柄沒有,這個時候我們需要保存一下實例句柄
?
定義一個接口即可.
注意: 窗口過程回調(diào)函數(shù)一定是要又默認的回調(diào).不然不管你怎么注冊窗口類,更新窗口類都會出錯的.
現(xiàn)在我們的工程已經(jīng)支持顯示一個窗口了.但是并沒有消息循環(huán).
4.添加消息循環(huán),響應(yīng)消息
消息循環(huán)我們要添加到我們自己封裝的Wmain中,當執(zhí)行用戶的Inininstance成功創(chuàng)建窗口的時候.
此時就該進行消息循環(huán)了.
4.1添加虛函數(shù)在消息類中.并實現(xiàn)
4,2 自己封裝的wmain進行調(diào)用.
我們最基礎(chǔ)的框架已經(jīng)搭建完成.
?
完整代碼下載:
鏈接:https://pan.baidu.com/s/1pKVViZp 密碼:2rsz
?
轉(zhuǎn)載于:https://www.cnblogs.com/iBinary/p/8060759.html
總結(jié)
以上是生活随笔為你收集整理的框架原理第一讲,熟悉常用的设计方式.(以MFC框架讲解)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: loadrunner—参数化
- 下一篇: SQL 主机