日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

框架原理第一讲,熟悉常用的设计方式.(以MFC框架讲解)

發(fā)布時(shí)間:2025/7/25 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 框架原理第一讲,熟悉常用的设计方式.(以MFC框架讲解) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

          框架原理第一講,熟悉常用的設(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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。