freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

網(wǎng)絡(luò)視頻聊天軟件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(編輯修改稿)

2024-12-07 13:59 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 此就造成了 MFC 對(duì)類封裝中的一定程度的的冗余和迂回 ,但這是可以接受的 .. 最后要明白 MFC 不只是一個(gè)功能單純的界面開(kāi)發(fā)系統(tǒng) ,它提供的類絕大部分用來(lái)進(jìn)行界面開(kāi)發(fā) ,關(guān)聯(lián)一個(gè)窗口的動(dòng)作 ,但它提供的類中有好多類不與一個(gè)窗口關(guān)聯(lián) ,即類的作用不是一個(gè)界面類 ,不實(shí)現(xiàn)對(duì)一個(gè)窗口對(duì)象的控制 (如創(chuàng)建 ,銷毀 ),而是一些在 WinDOS(用MFC 編寫(xiě)的程序絕大部分都在 WinDOS 中運(yùn)行 )中實(shí)現(xiàn)內(nèi)部處理的類 ,如數(shù)據(jù)庫(kù)的管理類等 ,學(xué) 習(xí)中最應(yīng)花費(fèi)時(shí)間的是消息和設(shè)備環(huán)境 ,對(duì) C++和 MFC 的學(xué)習(xí)中最難的部分是指針 ,C++面向?qū)ο癯绦蛟O(shè)計(jì)的其它部分 ,如數(shù)據(jù)類型 ,流程控制都不難 ,建議學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)C++版。 MFC 是微軟封裝了的 API。什么意思呢? windows 作為一個(gè)提供功能強(qiáng)大的應(yīng)用程序接口編程的操作系統(tǒng),的確方便了許多程序員,傳統(tǒng)的 win32 開(kāi)發(fā)(直接使用 windows的接口函數(shù) API)對(duì)于程序員來(lái)說(shuō)非常的困難,因?yàn)椋?API 函數(shù)實(shí)在太多了,而且名稱很亂,從零構(gòu)架一個(gè)窗口動(dòng)輒就是上百行的代碼。 MFC 是面向?qū)ο蟪绦蛟O(shè)計(jì)與 Application framework 的完美結(jié)合,他將傳統(tǒng)的 API 進(jìn)行了分類封裝,并且為你創(chuàng)建了程序的一般框架, MFC 是對(duì) WindowsAPI 的封裝,大大簡(jiǎn)化了我們的工作;學(xué) VC 主要就是要學(xué) MFC,大約有 100 多個(gè)類,但常用的也就二三十個(gè)。應(yīng)該象背 4 級(jí)單詞一樣將這些常用類搞懂;當(dāng)然不要死記,要通過(guò)看幫助、看例子、動(dòng)手練習(xí)來(lái)學(xué)會(huì)它們;而且,并非每個(gè)類的內(nèi)部的所有函數(shù)都要學(xué)會(huì),要日積月累。如果真的想成為高手,做個(gè)筆記本把自己認(rèn)為重要的類、函數(shù)記下來(lái),隨時(shí)學(xué)習(xí),也是很好的突擊方法。 重要的 MFC: CWnd:窗口,它是大多數(shù) “ 看得見(jiàn)的東西 ” 的父類( Windows 里幾乎所有看得見(jiàn)的東西都是一個(gè)窗口,大窗口里有許多小窗口),比如視圖 CView、框架窗口 CFrameWnd、工具條 CToolBar、對(duì)話框 CDialog、按鈕 CButton, etc。一個(gè)例外是菜單( CMenu)不是從窗口派生的。該類很大,一開(kāi)始也不必學(xué),知道就行了。 CDocument 文檔,負(fù)責(zé)內(nèi)存數(shù)據(jù)與磁盤(pán)的交互。最重要的是 OnOpenDocument(讀入 ),OnSaveDocument(寫(xiě)盤(pán)) ,Serialize(讀寫(xiě)) CView 視圖,負(fù)責(zé)內(nèi)存數(shù)據(jù)與用戶的交 互。包括數(shù)據(jù)的顯示、用戶操作的響應(yīng)(如菜單的選取、鼠標(biāo)的響應(yīng))。最重要的是 OnDraw(重畫(huà)窗口 ),通常用 CWnd::Invalidate()來(lái)啟動(dòng)它。另外,它通過(guò)消息映射表處理菜單、工具條、快捷鍵和其他用戶消息。你自己的許多功能都要加在里面,你打交道最多的就是它。 2020 屆本科生畢業(yè)設(shè)計(jì) 第 6 頁(yè) CDC 設(shè)備文本。無(wú)論是顯示器還是打印機(jī),都是畫(huà)圖給用戶看。這圖就抽象為 CDC。CDC 與其他 GDI(圖形設(shè)備接口)一起,完成文字和圖形、圖像的顯示工作。把 CDC 想象成一張紙,每個(gè)窗口都有一個(gè) CDC 相聯(lián)系,負(fù)責(zé)畫(huà)窗口。 CDC 有個(gè)常用子類 CClientDC(窗口客戶區(qū)),畫(huà)圖通常通過(guò) CClientDC 完成。 CDialog 對(duì)話框 : CWinApp 應(yīng)用程序類。似于 C 中的 main 函數(shù),是程序執(zhí)行的入口和管理者,負(fù)責(zé)程序建立、消滅,主窗口和文檔模板的建立。最常用函數(shù) InitInstance():初始化。 CGdiObject 及子類 ,用于向設(shè)備文本畫(huà)圖。它們都需要在使用前選進(jìn) DC。 CPen 筆,畫(huà)線 CBrush 刷子,填充 CFont 字體,控制文字輸出的字體 CBitmap 位圖 CPalette 調(diào)色板 CRgn 區(qū)域,指定一塊區(qū)域可以用于做特 殊處理。 CFile 文件。最重要的不外是 Open(打開(kāi)) ,Read(讀入) ,Write(寫(xiě)) CString 字符串。封裝了 C 中的字符數(shù)組,非常實(shí)用。 CPoint 點(diǎn),就是( x,y)對(duì) CRect 矩形,就是( left,top,right,bottom) CSize 大小,就是( cx,cy)對(duì)(寬、高) MFC 是在 1992 年的 Microsoft 16 位版的 C/C++編譯器的 版本中作為一個(gè)擴(kuò)展輕量級(jí)的 Windows API 面向?qū)ο蟮?C++封裝庫(kù)而引入的。此時(shí), C++因?yàn)樗诤?API 方面的卓越表現(xiàn),剛剛 開(kāi)始被用來(lái)取代 C應(yīng)用于開(kāi)發(fā)商用軟件。因此,他們推出了替代早期的老式的字符界面的集成開(kāi)發(fā)環(huán)境( IDE)的 PWB。 有趣的是, MFC 使用 “ Afx” 作為所有的全局函數(shù)的前綴, “ afx” 作為全局變量的前綴。因?yàn)樵?MFC 的早期開(kāi)發(fā)階段它叫 “ Application Framework Extensions” 縮寫(xiě)為 “ AFX” 。 AFX 提供了對(duì) Windows API 的高度抽象,建立了全新的面向?qū)ο蟮?AFX API,但它對(duì)于新手來(lái)說(shuō)太復(fù)雜了,所以 AFX 小組不得不重新開(kāi)始。后來(lái)他們創(chuàng)建了一組C++類,這就是 MFC。 MFC 這個(gè)名 字被采用得太晚了以至于沒(méi)來(lái)得及修改這些引用。 最近, Visual Studio 2020 一起發(fā)布了; Visual Studio 2020一起發(fā)布。在免費(fèi)的 Express 版本的 Visual Studio 2020/2020 中沒(méi)有包含 MFC。 作為一個(gè)強(qiáng)有力的競(jìng)爭(zhēng)對(duì)手,為 Borland 的 Turbo C++編譯器設(shè)計(jì) OWL( Object Windows Library)在同一時(shí)間也發(fā)布了。但最后, Borland 停止了對(duì) OWL 的繼續(xù)開(kāi)發(fā)并且不久就從 Microsoft 那里購(gòu)買(mǎi)了 MFC 頭 文件,動(dòng)態(tài)鏈接庫(kù)等的授權(quán),微軟沒(méi)有提供完整的 MFC 的集成支持。之后 Borland 發(fā)布了 VCL( Visual Component Library)來(lái)替換 OWL 框架。 網(wǎng)絡(luò)編程 套接口有三種類型 :流式套接口 ,數(shù)據(jù)報(bào)套接口及原始套接口 . 流式套接口定義了一種可靠的面向連接的服務(wù) ,實(shí)現(xiàn)了無(wú)差錯(cuò)無(wú)重復(fù)的順序數(shù)據(jù)傳輸 .數(shù)據(jù)報(bào)套接口定義了一種無(wú)連接的服務(wù) ,數(shù)據(jù)通過(guò)相互獨(dú)立的報(bào)文進(jìn)行傳輸 ,是無(wú)序的 ,并且不保證可靠 ,無(wú)差錯(cuò) .原始套接口允許對(duì)低層協(xié)議如 IP 或 ICMP 直接訪問(wèn) ,主要用于新的 2020 屆本科生畢業(yè)設(shè)計(jì) 第 7 頁(yè) 網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn)的測(cè)試 等 . 無(wú)連接服務(wù)器一般都是面向事務(wù)處理的,一個(gè)請(qǐng)求一個(gè)應(yīng)答就完成了客戶程序與服務(wù)程序之間的相互作用。若使用無(wú)連接的套接口編程,程序的流程可以用圖 31 表示。 服務(wù)器 s oc ke t ( ) bi n d( ) r e a df r om ( ) s e n dt o( ) 阻塞,等待客戶數(shù)據(jù) 處理服務(wù)請(qǐng)求 s oc ke t ( ) bi n d( ) s e n dt o( ) r e a df r om ( ) 客戶機(jī) 服務(wù)請(qǐng)求 服務(wù)應(yīng)答 圖 3 1 無(wú)連接套接口應(yīng)用程序時(shí)序圖 c l os e ( ) c l os e ( ) 面向連接服務(wù)器處理的請(qǐng)求往往比較復(fù)雜,不是一來(lái)一去的請(qǐng)求應(yīng)答所能解決的,而且往往是并發(fā)服務(wù)器。使用面向連接的套接口編程 ,可以通過(guò)圖 32 來(lái)表示其時(shí)序。 2020 屆本科生畢業(yè)設(shè)計(jì) 第 8 頁(yè) 服 務(wù) 器 s o c k e t ( )  b i n d ( ) l i s t e n ( )阻 塞 , 等 待 客 戶 數(shù) 據(jù)處 理 服 務(wù) 請(qǐng) 求 s o c k e t ( ) c o n n e c t ( ) w r i t e ( )客 戶 機(jī)請(qǐng) 求 數(shù) 據(jù)應(yīng) 答 數(shù) 據(jù)圖 3 2 面 向 連 接 套 接 口 應(yīng) 用 程 序 時(shí) 序 圖 r e a d ( ) r e a d ( ) a c c e p t ( ) w r i t e ( )建 立 連 接 c l o s e ( ) c l o s e ( ) 套接口工作過(guò)程如下 :服務(wù)器首先啟動(dòng) ,通過(guò)調(diào)用 socket()建立一個(gè)套接口 ,然后調(diào)用bind()將該套接口和本地網(wǎng)絡(luò)地址聯(lián)系在一起 ,再調(diào)用 listen()使套接口做好偵聽(tīng)的準(zhǔn)備 ,并規(guī)定它的請(qǐng)求隊(duì)列的長(zhǎng)度 ,之后就調(diào)用 accept()來(lái)接收連接 .客戶在建立套接口后就可調(diào)用 connect()和服務(wù)器建立連接 .連接一旦建立 ,客戶機(jī)和服務(wù)器之間就可以通過(guò)調(diào)用read()和 write()來(lái)發(fā)送和接收數(shù)據(jù) .最后 ,待數(shù)據(jù)傳送結(jié)束后 ,雙方調(diào)用 close()關(guān)閉套接口。 由于 Windows 的基于消息的特點(diǎn) ,WINSOCK 和 BSD 套接口相比 ,有如下一些新的擴(kuò)充 : 異步選擇函數(shù) WSAAsyncSelect()允許應(yīng)用程序提名一個(gè)或多個(gè)感興趣的網(wǎng)絡(luò)事件 ,如 FD_READ,FD_WRITE,FD_CONNECT,FD_ACCEPT 等等代表的網(wǎng)絡(luò)事件 .當(dāng)被提名的網(wǎng)絡(luò)事件發(fā)生時(shí) ,Windows 應(yīng)用程序的窗口函數(shù)將收到一個(gè)消息 .這樣就可以實(shí)現(xiàn)事件驅(qū)動(dòng)了 . 異步請(qǐng)求函數(shù)允許應(yīng)用程序用異步方式獲得請(qǐng)求的信息 ,如 WSAAsyncGetXByY()類函數(shù) . 這些函數(shù)是對(duì) BSD 標(biāo)準(zhǔn)函數(shù)的擴(kuò)充 .函數(shù) WSACancelAsyncRequest()允許用 2020 屆本科生畢業(yè)設(shè)計(jì) 第 9 頁(yè) 戶中止一個(gè)正在執(zhí)行的異步請(qǐng)求 . WINSOCK 提供了 鉤子函數(shù) 負(fù)責(zé)處理 Windows 消息 ,使 Windows 的消息循環(huán)能夠繼續(xù) .WINSOCK 提 供 了 兩 個(gè) 函 數(shù) (WSASetBlockingHook() 和WSAUnhookBlockingHook()) 讓 應(yīng)用程 序設(shè) 置或取 消自己 的 鉤子 函數(shù) .函數(shù)WSAIsBlocking()可以檢測(cè)是否阻塞 ,函數(shù) WSACancelBlockingCall()可以取消一個(gè)阻塞的調(diào)用 . WINSOCK 提供了兩個(gè) WSAGetLastError()和 WSASetLastError()來(lái)獲取和設(shè)置最近錯(cuò)誤號(hào) . 由于 Windows Sockets 的服務(wù)是以動(dòng)態(tài)連接庫(kù) 形式實(shí)現(xiàn)的 ,所以必須要先調(diào)用 WSAStartup()函數(shù)對(duì) Windows Sockets DLL 進(jìn)行初始化 ,協(xié)商 WINSOCK的版本支持 ,并分配必要的資源 .在應(yīng)用程序關(guān)閉套接口后 ,還應(yīng)調(diào)用 WSACleanup()終止對(duì) Windows Sockets DLL 的使用 ,并釋放資源 ,以備下一次使用 . 組件對(duì)象模型 (COM) 組件對(duì)象模型,也稱組件對(duì)象模型,英文為 Component Object Model,縮寫(xiě) COM,是 微軟 對(duì)于 網(wǎng)頁(yè)服務(wù)器 與客戶端、增益集與 Office 系列軟件之間交互的一項(xiàng)軟件組件技術(shù)。 自動(dòng)化是指應(yīng)用程序的 COM 化來(lái)讓外部可以調(diào)用它們的功能,以及外部調(diào)用這 些功能的方法。自動(dòng)化的典型應(yīng)用是微軟的很多軟件中都支持的宏。由于自動(dòng)化普遍使用 OLE的標(biāo)準(zhǔn)接口來(lái)實(shí)現(xiàn),所以這個(gè)技術(shù)有時(shí)也稱 OLE 自動(dòng)化。 COM是微軟自 1993年便提出的組件式軟件平臺(tái),用來(lái)做進(jìn)程間通信( Interprocess munication, IPC)以及當(dāng)作組件式軟件開(kāi)發(fā)的平臺(tái)。 COM 提供跟編程語(yǔ)言無(wú)關(guān)的方法實(shí)現(xiàn)一個(gè)軟件對(duì)象,因此可以在其他環(huán)境中運(yùn)行。 COM 要求軟件組件必須遵照一個(gè)共同的接口,該接口與實(shí)現(xiàn)無(wú)關(guān),因此可以隱藏實(shí)現(xiàn)屬性,并且被其他對(duì)象在不知道其內(nèi)部實(shí)現(xiàn)的情形下正確的使用。 COM 并被實(shí)現(xiàn)于多個(gè)平臺(tái)之上,并不限于 Windows 操作系統(tǒng)之上。但還是只有Windows 最常使用 COM,且某些功能已被目前的 .NET 平臺(tái)取代。 COM 是基于組件對(duì)象方式概念來(lái)設(shè)計(jì)的,在基礎(chǔ)中,至少要讓每個(gè)組件都可以支持二個(gè)功能: 1,查詢組件中有哪些接口 2,讓組件做自我生命管理,此概念的實(shí)踐即為參考計(jì)數(shù)( Reference Counting) 這 二 個(gè) 功 能 即 為 COM 的根: IUnknown 接 口 所 提 供 的IUnknown::QueryInterface(), IUnknown::AddRef()及 IUnknown::Release()三個(gè)方法的由來(lái)。所有的 COM 組件都要實(shí)現(xiàn) IUnknown,表示每個(gè) COM 組件都有相同的能力。 只由 COM 派生實(shí)現(xiàn)出來(lái)的組件,稱為純 COM 組件。 但在 Windows 持續(xù)發(fā)展時(shí), Visual Basic 開(kāi)始支持 OCX,也就是 OLE Custom Control,這讓微軟開(kāi)始思考要如何讓 COM 組件可以跨語(yǔ)言支持,在這樣的要求下,必須要提供一個(gè)一致的接口,以及提供一 組可
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1