溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

DCOM(分布式組件對(duì)象模型)原理淺析(一)

發(fā)布時(shí)間:2020-07-26 22:37:27 來(lái)源:網(wǎng)絡(luò) 閱讀:2106 作者:liam2199 欄目:編程語(yǔ)言

     (分布式組件對(duì)象模型)是一系列微軟的概念和程序接口,利用這個(gè)接口,客戶(hù)端程序?qū)ο竽軌蛘?qǐng)求來(lái)自網(wǎng)絡(luò)中另一臺(tái)計(jì)算機(jī)上的服務(wù)器程序?qū)ο?。DCOM基于組件對(duì)象模型(COM),COM提供了一套允許同一臺(tái)計(jì)算機(jī)上的客戶(hù)端和服務(wù)器之間進(jìn)行通信的接口(運(yùn)行在Windows95或者其后的版本上)。

      DCOM(分布式組件對(duì)象模型,分布式組件對(duì)象模式)是一系列微軟的概念和程序接口,利用這個(gè)接口,客戶(hù)端程序?qū)ο竽軌蛘?qǐng)求來(lái)自網(wǎng)絡(luò)中另一臺(tái)計(jì)算機(jī)上的服務(wù)器程序?qū)ο?。DCOM基于組件對(duì)象模型(COM),COM提供了一套允許同一臺(tái)計(jì)算機(jī)上的客戶(hù)端和服務(wù)器之間進(jìn)行通信的接口(運(yùn)行在Windows95或者其后的版本上)。

      Microsoft Distributed Component Object Model(DCOM)是Component Object Model(COM)的擴(kuò)展,它支持不同的兩臺(tái)機(jī)器上的組件間的通信,而且不論它們是運(yùn)行在局域網(wǎng)、廣域網(wǎng)、還是Internet上。借助DCOM你的應(yīng)用程序?qū)⒛軌蛉我膺M(jìn)行空間分布。

由于DCOM是COM這個(gè)組件技術(shù)的無(wú)縫升級(jí),所以你能夠從你現(xiàn)有的有關(guān)COM得知識(shí)中獲益,你的以前在COM中開(kāi)發(fā)的應(yīng)用程序、組件、工具都可以移入分布式的環(huán)境中。DCOM將為你屏蔽底層網(wǎng)絡(luò)協(xié)議的細(xì)節(jié),你只需要集中精力于你的應(yīng)用。

 

      COM已經(jīng)不再是單純的技術(shù)和編程規(guī)范,而是一種研發(fā)思想,在這里,我們逐步分析COM與DCOM思想,帶領(lǐng)大家進(jìn)入分布式系統(tǒng)的殿堂。

     這次,我們講解COM對(duì)象的創(chuàng)建字典對(duì)象的CreateObject函數(shù)。

/*
CreateObject函數(shù)創(chuàng)建字典對(duì)象,成功返回指向IUnknown的接口指針,通過(guò)QueryInterface函數(shù)獲取IDicitionary接口指針,利用IDictionary接口指針就可以完成查字典的功能
*/
BOOL CreateObject(const CLSID& clsid, const IID& iid, void** ppv)
{
	hModual = LoadLibrary("DictComp.dll");
	if(NULL == hModual)
	{
		return FALSE;
	}
	
	typedef BOOL(_stdcall* MyFunctionType)(const CLSID& clsid, const IID& iid,void **ppv);
	MyFunctionType fnCreateObject;
	fnCreateObject = (MyFunctionType)GetProAddress(hModual, "CreateObject");
	if(NULL == fnCreateObject)
	{
		FreeLibrary(hModual);
		return FALSE;
	}
	return fnCreateObject(clsid,iid, ppv);
}


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI