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

正文內(nèi)容

畢業(yè)設(shè)計(jì)論文-局域網(wǎng)聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(編輯修改稿)

2024-12-22 18:34 本頁面
 

【文章內(nèi)容簡介】 n 函數(shù) 則 是 Windows 程序的進(jìn)入點(diǎn) 。 2. Msg結(jié)構(gòu)體 定義了一個(gè) Msg結(jié)構(gòu)體,是 Windows 內(nèi)設(shè)的一種數(shù)據(jù)格式 , 在 Windows 程序中,消息是由 MSG結(jié)構(gòu)體來表示的。 3. 注冊(cè)窗口 RegisterClass()完成注冊(cè)窗口類的功能,設(shè)定窗口的屬性:邊框、顏色、標(biāo)題、位置等等。 4. 創(chuàng)建窗口 CreateWindow 函數(shù)可以用于創(chuàng)建父窗口、彈出窗口以及子窗口,在創(chuàng)建窗口時(shí)它可以確定窗口類、窗口標(biāo)題、窗口風(fēng)格、大小以及初始化位置。 5. 顯示窗口 創(chuàng)建窗口后需要使用 ShowWindow 函數(shù)用于顯示窗口。 刷新窗口 調(diào)用 UpdateWindow 函數(shù)來刷新窗口。 7. 消息循環(huán) 初始化工作完成后, WinMain 進(jìn)入所謂的消息循環(huán),使用 while 循環(huán), 不斷的 GetMessage,再使用 TranslateMessage 將消息轉(zhuǎn)化,用 DispatchMessage 將消息傳遞給窗口函數(shù)去處理。 8. 獲取消息 GetMessage 功能函數(shù)從消息隊(duì)列中獲取消息,如果消息隊(duì)列中沒有消息,此功能函數(shù)則會(huì)一直等得消息。 9. 轉(zhuǎn)換消息 將特定的消息轉(zhuǎn)換為不同的消息 ,例如消息隊(duì)列中同時(shí)有 WM_KEYDOWN 和 WM_KEYUP消息時(shí) ,意味著用戶同時(shí)按下了鍵盤上的某幾個(gè)鍵 ,此時(shí) TranslateMessage 將其轉(zhuǎn)換為一個(gè) WM_CHAR 消息。 3 10. 將消息發(fā)送到回調(diào)函數(shù) DispatchMessage 通過 USER 模塊的協(xié)助將消息送到該窗口的窗口函數(shù)去了,但是 DispatchMessage 并沒有指定函數(shù)名,卻可以將消息傳送過去,這是因?yàn)橄l(fā)生的時(shí)候,OS已經(jīng)根據(jù)當(dāng)時(shí)狀態(tài),為它標(biāo)明了所屬窗口,而窗口所屬的窗口類亦是明確的。 11. WinMain 函數(shù)返回值 return 。 //返回結(jié)構(gòu)體變量 msg中的 wParam 的值。 12. WindowProc 窗口函數(shù) 窗口中的生命樞紐:窗口函數(shù) WindowProc。 WindowProc 是一個(gè) callback 函 數(shù),常利用 switch/case 方式判斷消息的種類,以決定處理方式 。 MFC (Microsoft Foundation Class) 簡介 MFC 是在 1992 年隨微軟的 Microsoft C/C++ 編譯器發(fā)布的,是建立在 Windows API 之上的 C++ 類庫( C++ Class Library),意圖是使 Windows 程序設(shè)計(jì)過程更有效率,更符合面向?qū)ο蟮木瘛,F(xiàn)在 MFC 已經(jīng)成為了 Windows 環(huán)境上標(biāo)準(zhǔn)的 C++ API。 MFC 使得開發(fā) Windows 應(yīng)用程序變得簡單容易 ,將很多應(yīng)用程序開發(fā)中常用的功能自動(dòng)化,并且提供了文檔框架視圖結(jié)構(gòu)和活動(dòng)文檔這樣的便于自定義的應(yīng)用程序框架。同時(shí),在 Visual C++內(nèi)部也內(nèi)建了很多對(duì) MFC 的非常實(shí)用的東西,例如類向?qū)н@樣的支持,減少軟件開發(fā)的時(shí)間,使用類向?qū)Э梢陨蓮?hello world 這樣的簡單程序到活動(dòng)文檔服務(wù)器這樣的復(fù)雜程序。 MFC 的消息映射機(jī)制也避免了使用性能較低的龐大虛函數(shù)表。 MFC在整個(gè) Windows 家族中都是兼容的 。 [1] MFC 與 C 語言 API 的關(guān)系 設(shè)置 Microsoft 基本類庫與其它 Windows 類庫所不同的唯一特征就是它與 C 語言編寫的 Windows API 的緊密的映射關(guān)系。而且,可以將直接調(diào)用 Windows API 與調(diào)用類庫自由地混合起來使用。這種直接訪問并不意味著類可以完全取代 API。開發(fā)者有時(shí)必須直接調(diào)用一些 Windows 函數(shù),例如, SetCursor 和 GetSystemMetrics。只有在有明顯優(yōu)勢時(shí),一個(gè) Windows 函數(shù)才被一個(gè)類成員函數(shù)所替代 。 MFC 類庫 MFC 類庫是一個(gè)很大的、擴(kuò)展了的 C++類層次結(jié)構(gòu),與傳統(tǒng)上使用 C 語言直接訪問 Windows API 相反, MFC 已經(jīng)包含和壓縮了所有標(biāo)準(zhǔn)的 “ 樣板文件 ” 代碼,這些代碼是所有用 C 編寫的 Windows 程序所必需的,因此用 MFC 編寫的程序要比用 C 語言編寫的程序小得多,當(dāng)然 MFC 所編寫的程序的性能也毫無損失。必要時(shí),也可以 MFC可以用面向?qū)ο蟮姆椒▉碚{(diào)用 Windows API,因?yàn)? MFC 不修改也不隱藏 Windows 程序的基本結(jié)構(gòu)。 MFC 是很龐大的。例如,版本 中包含了大約 200 個(gè)不同的類。事實(shí)上,你可能只需要使用其中的十多個(gè)不同的類,就可以建立一個(gè)非常漂亮的程序。 MFC 層次結(jié)構(gòu)大 約可分為幾種不同的類型的類: 1. 根類: Cobject Microsoft 基本類庫中的大多數(shù)類都是由在類層次表中根上的唯一的一個(gè)基類派生而來的。 2. MFC 應(yīng)用結(jié)構(gòu)類 MFC 應(yīng)用構(gòu)造類有助于一個(gè)框架應(yīng)用的構(gòu)造。它們對(duì)大多數(shù)應(yīng)用提供了通用功能??梢栽诳蚣苤刑顚憣?duì)于應(yīng)用特定的功能。 3. 窗口、對(duì)話和控件類 4 類 CWnd 和它的派生類封裝了 HWND,它是一個(gè) Windows 窗口。 CWnd 可被自己使用,也可以作為派生新類的基類。類庫提供的派生類表示各種窗口。 CWnd 是所有窗口的基類??梢允褂?CWnd 派生出來的一個(gè)類, 也可以從其中派生出自己的類。 4. 繪畫和打印類 在 Windows 中,所有的圖形輸出都是在一個(gè)可視的繪圖區(qū)上。這叫作一個(gè)設(shè)備上下文(或 DC)。 MFC 提供了封裝不同 DC 類型的類,也提供了對(duì) Windows 繪圖工具,例如位圖、刷子、調(diào)色板和筆的封裝。 5. 文件和數(shù)據(jù)庫類 這些類允許將信息存儲(chǔ)在一個(gè)數(shù)據(jù)庫或一個(gè)磁盤文件中。有兩個(gè)數(shù)據(jù)庫類的集合 ─ DAO 和 ODBC─ 它們提供了相似的功能。 6. Inter 和網(wǎng)絡(luò)類 這些類允許和其它使用 ISAPI 的計(jì)算機(jī)或一個(gè) Windows Socket 交換信息。還有創(chuàng)建 ISAPI 擴(kuò)展 DLL 的類的集合和操作 Windows 套接字的類的集合。 支持連接的類的分類: ISAPI 類、 Windows 套接字類、 Win32 Inter 類。 7. 其它還有簡單的數(shù)據(jù)類型類、 OLE 類、調(diào)試和異常類、數(shù)組列表和映射類。 TCP/IP 協(xié)議及 WINDOWS SOCKETS 網(wǎng)絡(luò)編程接口 TCP/IP 協(xié)議簡介 通常包含了一系列與 “TCP (傳輸控制協(xié)議) ” 和 “IP (網(wǎng)際協(xié)議) ” 有聯(lián)系的 網(wǎng)絡(luò)協(xié)議 ,它包括其它的協(xié)議,應(yīng)用軟件,甚至網(wǎng)絡(luò)媒介。這些協(xié)議的示例是: UDP( User Datagram Protocol)協(xié)議、 ICMP( Inter Control Message Protocol)協(xié)議、 ARP(地址解析協(xié)議)和其他一些協(xié)議的協(xié) 議組。應(yīng)用的示例: tel(遠(yuǎn)程登錄 )、 ftp(文件傳遞協(xié)議 )、 等。這其中一些協(xié)議最早發(fā)源于美國國防部的 ARPA 網(wǎng) 項(xiàng)目。 [2] Windows Socket 網(wǎng)絡(luò)編程簡介 Socket 實(shí)際在計(jì)算機(jī)中提供了一個(gè)通信 端口,可以通過這個(gè)端口與任何一個(gè)具有 Socket 接口的計(jì)算機(jī)通信。應(yīng)用程序在網(wǎng)絡(luò)上傳輸,接收的信息都通過這個(gè) Socket 接口來實(shí)現(xiàn)。 Windows Sockets 規(guī)范定義了一套開放的、支持多種協(xié)議的、 Windows 下的網(wǎng)絡(luò)編程接口。它不僅包含了人們所熟悉的 Berkeley Socket 風(fēng)格的庫函數(shù) , 也包含了一組針對(duì) Windows 的擴(kuò)展庫函數(shù), 使得 程序員能充分地利用 Windows 消息驅(qū)動(dòng)機(jī)制進(jìn)行編程。 現(xiàn)在的 Windows Sockets 已經(jīng)基本上實(shí)現(xiàn)了與協(xié)議無關(guān),你可以使用 Windows Sockets 來調(diào)用多種協(xié)議的功能,但較常使用的是 TCP/IP 協(xié)議。 [3] 多線程技術(shù) 進(jìn)程及線程概述 進(jìn)程和線程都是操作系統(tǒng)的概念。每個(gè)進(jìn)程是由一個(gè)或多個(gè)線程、私有的虛擬地址空間、代碼、數(shù)據(jù)和其它各種系統(tǒng)資源組成,進(jìn)程在運(yùn)行過程中創(chuàng)建的資源隨著進(jìn)程的終止而被銷毀,所使用的系統(tǒng)資源在進(jìn)程終止時(shí)被釋放或關(guān)閉。進(jìn)程是應(yīng)用程序的執(zhí)行實(shí)例。 線程是進(jìn)程內(nèi)的執(zhí)行路徑,也是 Win32 安排的最小執(zhí)行單元。線程包括堆棧、 CPU 5 寄存器的狀態(tài)和系統(tǒng)計(jì)劃程序執(zhí)行列表中的項(xiàng)。每一個(gè)進(jìn)程至少有一個(gè)主執(zhí)行線程 ,它無需由用戶去主動(dòng)創(chuàng)建,是由系統(tǒng)自動(dòng)創(chuàng)建的,此線程終止時(shí),進(jìn)程也終止。用戶可以根據(jù)需要在應(yīng)用程序中創(chuàng)建其它線程,多個(gè)線程并發(fā)地運(yùn)行于同一個(gè)進(jìn)程中,所有線程都在該進(jìn)程的虛擬地址空間中,共同使用這些虛擬地址空間、全局變量和系統(tǒng)資源,但是必須使用信號(hào)燈或其他進(jìn)程間的通信方法協(xié)調(diào)它們的工作。一般情況下進(jìn)程中的每個(gè)線程都獨(dú)立運(yùn)行的,對(duì)進(jìn)程中的其他線程一無所知,除非使這些線程相互可見。 多線程可以實(shí)現(xiàn)并行處理,避免了某項(xiàng)任務(wù)長時(shí)間占用 CPU 時(shí)間。要說明的一點(diǎn)是,目前大多數(shù)的計(jì)算機(jī)都是單處理器( CPU)的,為了運(yùn)行所有 這些線程,操作系統(tǒng)為每個(gè)獨(dú)立線程安排一些 CPU 時(shí)間,操作系統(tǒng)以輪換方式向線程提供時(shí)間片,這就給人一種假象,好象這些線程都在同時(shí)運(yùn)行。由此可見,如果兩個(gè)非常活躍的線程為了搶奪對(duì) CPU 的控制權(quán),在線程切換時(shí)會(huì)消耗很多的 CPU 資源,反而會(huì)降低系統(tǒng)的性能。這一點(diǎn)在多線程編程時(shí)應(yīng)該注意。 MFC 對(duì)多線程編程的支持 Win32 SDK 函數(shù)支持進(jìn)行多線程的程序設(shè)計(jì),并提供了操作系統(tǒng)原理中的各種同步、互斥和臨界區(qū)等操作。 Visual C++ 中,使用 MFC 類庫也實(shí)現(xiàn)了多線程的程序設(shè)計(jì),使得多線程編程 更加方便。 CWinThread 對(duì)象代表在一個(gè)應(yīng)用程序內(nèi)運(yùn)行的線程。運(yùn)行的主線程通常由 CWinApp 的派生類提供; CWinApp 由 CWinThread 派生。另外, CWinThread 對(duì)象允許一給定的應(yīng)用程序擁有多個(gè)線程。 CWinThread 支持兩種線程類型:工作者線程和用戶界面線程。工作者線程沒有收發(fā)消息的功能:例如,在電子表格應(yīng)用程序中進(jìn)行后臺(tái)計(jì)算的線程。用戶界面線程具有收發(fā)消息的功能,并處理從系統(tǒng)收到的消息。 CWinApp 及其派生類是用戶界面線程的例子。其它用戶界面線程也可由 CWinThread 直 接派生。 CWinThread 類的對(duì)象存在于線程的生存期。如果你希望改變這個(gè)特性,將 m_bAutoDelete 設(shè)為 FALSE。 要使你的代碼和 MFC 是完全線程安全的, CWinThread 類是完全必要的??蚣苁褂玫挠脕砭S護(hù)與線程相關(guān)的信息的線程局部數(shù)據(jù)由 CWinThread 對(duì)象管理。由于依賴 CWinThread 來處理線程局部數(shù)據(jù),任何使用 MFC 的線程必須由 MFC 創(chuàng)建。例如,由運(yùn)行時(shí)函數(shù) _beginthreadex 創(chuàng)建的線程不能使用任何 MFC API。為了創(chuàng)建一個(gè)線程,調(diào)用AfxBeginThread函數(shù)。 根據(jù)你需要工作者線程還是用戶界面線程,有兩種調(diào)用 AfxBeginThread 的格式。如果你需要用戶界面線程,則將指向你的 CWinThread 派生類的 CRuntimeClass 的指針傳遞給 AfxBeginThread。如果你需要?jiǎng)?chuàng)建工作者線程,則將指向控制函數(shù)的指針和控制函數(shù)的參數(shù)傳遞給 AfxBeginThread。對(duì)于工作者線程和用戶界面線程,你可以指定可選的參數(shù)來修改優(yōu)先級(jí), 堆棧大小, 創(chuàng)建標(biāo)志和安全屬性。 AfxBeginThread 線程將返回指向新的 CWinThread 對(duì)象的指針。 與調(diào) 用 AfxBeginThread 相反,你可以構(gòu)造一個(gè) CWinThread 派生類的對(duì)象,然后調(diào)用 CreateThread。如果你需要在連續(xù)創(chuàng)建和終止線程的執(zhí)行之間重復(fù)使用 CWinThread對(duì)象,這種兩步構(gòu)造方法非常有用。 創(chuàng)建線程也可以使用 API 函數(shù): CreateThread 函數(shù)完成。其它還有掛起線程、結(jié)束線程等函數(shù),將不再一一詳解。 VFW簡介 VFW 是 Microsoft 1992 年推出的關(guān)于數(shù)字視頻的一個(gè)軟件包,它能使應(yīng)用程 序 數(shù)字 6 化并播放從傳統(tǒng)模 擬 視頻源得到的視頻剪輯 。 [4] VFW 的一個(gè)關(guān)鍵思想 是播放時(shí)不需要專用硬件 。 為了解決數(shù)字視頻數(shù)據(jù)量大的問題,需要對(duì)數(shù)據(jù)進(jìn)行壓縮。它引進(jìn)了一種叫 AVI 的文件標(biāo)準(zhǔn),該標(biāo)準(zhǔn)未規(guī)定如何對(duì)視頻進(jìn)行捕獲、壓縮及播放,僅規(guī)定視頻和音頻該如何存儲(chǔ)在硬盤上, 以及 在 AVI文件中交替存儲(chǔ)視頻幀和與之相匹配的音頻數(shù)據(jù)。 VFW 給程序員提供 VBX和 AVICap 窗口類的高級(jí)編程工具,使程序員能通過發(fā)送消息或設(shè)置屬性來捕獲、播放和編輯視頻剪輯。用戶不必專門安裝 VFW, 在安裝 Windows 時(shí),安裝程序會(huì)自動(dòng)地安裝配置視頻所需的組件,如設(shè)備驅(qū)動(dòng)程序、視頻壓縮程序等。 VFW 主要由以下六個(gè)模塊 組成: 1. :包含了執(zhí)行視頻捕獲的函數(shù),它給 AVI 文件 、 I/O 和視頻音頻設(shè)備驅(qū)動(dòng)程序提供一個(gè)高級(jí)接口; 2. :用一套特殊的 DrawDib 函數(shù)來處理屏幕上的視頻操作 ; 3. :此驅(qū)動(dòng)程序包括對(duì) VFW 的 MCI 命令的解釋器; 4. :支持由標(biāo)準(zhǔn)多媒體 I/O( mmio)函數(shù)提供的更高的命令來訪問 AVI 文件;
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1