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