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

正文內(nèi)容

第九章----面向?qū)ο蠓治雠c設(shè)計【西工大課件】(編輯修改稿)

2024-10-27 15:01 本頁面
 

【文章內(nèi)容簡介】 []) { ? ISimpleMath *pSimpleMath = NULL。//聲明接口指針 ? IAdvancedMath *pAdvMath = NULL。 ? //創(chuàng)建對象實例,我們暫時這樣創(chuàng)建對象實例, COM有創(chuàng)建對象實例的機制 CMath *pMath = new CMath。 ? //查詢對象實現(xiàn)的接口 ISimpleMath ? pMathQueryInterface(IID_ISimpleMath, (void **)amp。pSimpleMath)。 ? if(pSimpleMath) ? cout 10 + 4 = pSimpleMathAdd(10, 4) endl。 ? //查詢對象實現(xiàn)的接口 IAdvancedMath ? pSimpleMathQueryInterface(IID_IAdvancedMath, (void **)amp。pAdvMath)。 if(pAdvMath) ? cout 10 Fabonacci is pAdvMathFabonacci(10) endl。 ? pAdvMathRelease()。 ? pSimpleMathRelease()。 ? return 0。 } ? 此文件相當于客戶端的代碼,首先創(chuàng)建一個 CMath對象 ,再根據(jù)此對象去查詢所需要的接口,如果正確得到所需接口指針,再調(diào)用接口的方法,最后再將接口的釋放掉。 Math組件的二進制結(jié)構(gòu)圖 二、 COM思想 面向?qū)ο蟮慕M件模型- COM ? 按照組件模型搭建起來的軟件稱為組件軟件。軟件組件按照一定的接口模式組織成組件軟件。組件接口方式保證軟件組件之間的通信。 ? COM除提供組件間的接口標準外,還引用了面向?qū)ο蟮乃枷搿? ? 在 WINDOWS平臺上,一個 COM可以是一個 DLL,也可是一個 EXE。一個組件程序可以包含多個COM對象,一個 COM對象也可實現(xiàn)多個接口。 二、 COM思想 面向?qū)ο蟮慕M件模型- COM ? 由于 COM對象和使用 COM對象的客戶之間建立C/S模式,因此通常稱 COM對象為 COM服務(wù)器。 ? COM的發(fā)展是經(jīng)過 DDE, OLE1, VBX, OLE2, DCOM, ACTIVEX, COM+。 ? COM組件軟件組成: COM對象, COM接口,COM客戶, COM庫(框架)。 二、 COM思想 COM具有的特點 ? 二進制特性 ? 接口不變性 ? 繼承性:類繼承說明繼承,同時也實現(xiàn)繼承;接口繼承只說明繼承。 ? 多態(tài)性: COM對象也具有多態(tài)性,通過 COM接口體現(xiàn)。多態(tài)性使得客戶用以同樣的方法處理不同的對象,或不同類型的對象,只要它們實現(xiàn)了同樣的接口。 二、 COM思想 COM內(nèi)容 ? COM接口與對象 IUnknown HResult QueryInterface(iid,**ppv) ULONG AddRef(void) ULONG Release(void) 全局唯一標識符 GUID COM接口定義 二、 COM思想 COM內(nèi)容 COM接口定義 接口指針 vtable指針 指針函數(shù) 1 指針函數(shù) 2 指針函數(shù) 3 … 對象實現(xiàn) pVtable vtable 二、 COM思想 COM內(nèi)容 COM接口定義 class IDB: public IUnknown { public: virtual HRESULT _stdcall read(,)=0。 virtual HRESULT _stdcall write(,)=0。 … } 二、 COM思想 COM內(nèi)容 COM接口定義 客戶使用的 接口指針 vtable指針 QueryInterface地址 AddRef地址 Release地址 Read地址 對象實現(xiàn) pVtable vtable m_arrTable m_arrName Write地址 … 二、 COM思想 COM內(nèi)容 接口描述語言 IDL import “”,””。 { object, uuid( ), } interface IFace: IUnknown { HRESULT MethodA([in],[out])。 } 比如用以下編譯 : midl : 包含接口說明文件 : 實現(xiàn)了接口 IFace的代理和存根 : 定義了所以用到的 GUID,包括 IID : 包含代理 /存根的入口和代理類廠所要的數(shù)據(jù)結(jié)構(gòu) ?COM應(yīng)用模型 客戶服務(wù)器模型:包容與聚合,容器與服務(wù)器的概念 二、 COM思想 COM內(nèi)容 客戶程序 對象 A 對象 B 包容 客戶程序 對象 A 對象 B 聚合 ?COM應(yīng)用模型 進程內(nèi)組件: DLL、 LPC 一個進程內(nèi)組件通常是 DLL方式存在的,客戶程序需要找到 DLL??蛻舫绦虻玫降闹羔樦赶蚪M件程序中接口的 vtable, vtable包含了該結(jié)構(gòu)所有成員函數(shù)的入口地址。 二、 COM思想 COM內(nèi)容 ?COM應(yīng)用模型 進程外組件: DLL、 LPC、 RPC、代理DLL、存根 DLL 二、 COM思想 COM內(nèi)容 客戶程序 代理 DLL 組件程序 存根 DLL LPC ?COM應(yīng)用模型 COM庫(框架) 初始化函數(shù): CoInitialize GUID相關(guān)函數(shù): IsEqualGUID 對象創(chuàng)建函數(shù): CoGetClassObject:獲得對象類廠 CoCreateInstance:創(chuàng)建 COM對象 內(nèi)存管理函數(shù): CoTaskMemAlloc 二、 COM思想 COM內(nèi)容 ?COM應(yīng)用模型 COM與注冊表 Regsrv32 二、 COM思想 COM內(nèi)容 ?COM組件 實現(xiàn)類工廠對象 二、 COM思想 COM內(nèi)容 客戶 類廠 對象 ?COM組件 實現(xiàn)類工廠對象 類廠本身就是一個 COM對象,支持一個特殊的接口 IClassFactory IClassFactory:public IUnknown { public : void HRESULT CreateInstance( /* [in] */ Iunknown *pUnknwon。 /* [in] */ REFIID riid, /* [out] */ void **ppvObject() = 0。} 二、 COM思想 COM內(nèi)容 ?COM組件 實現(xiàn)類工廠對象 Class CDBSrvFactory:public IClassFactory{ public : HRESULT CreateInstance(,)。 HRESULT QueryInterfac
點擊復制文檔內(nèi)容
電大資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1