1. 程式人生 > >DCOM(分布式組件對象模型)原理淺析(一)

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

com dcom 分布式系統 底層開發 組件技術

(分布式組件對象模型)是一系列微軟的概念和程序接口,利用這個接口,客戶端程序對象能夠請求來自網絡中另一臺計算機上的服務器程序對象。DCOM基於組件對象模型(COM),COM提供了一套允許同一臺計算機上的客戶端和服務器之間進行通信的接口(運行在Windows95或者其後的版本上)。

DCOM(分布式組件對象模型,分布式組件對象模式)是一系列微軟的概念和程序接口,利用這個接口,客戶端程序對象能夠請求來自網絡中另一臺計算機上的服務器程序對象。DCOM基於組件對象模型(COM),COM提供了一套允許同一臺計算機上的客戶端和服務器之間進行通信的接口(運行在Windows95或者其後的版本上)。

Microsoft Distributed Component Object Model(DCOM)是Component Object Model(COM)的擴展,它支持不同的兩臺機器上的組件間的通信,而且不論它們是運行在局域網、廣域網、還是Internet上。借助DCOM你的應用程序將能夠任意進行空間分布。

由於DCOM是COM這個組件技術的無縫升級,所以你能夠從你現有的有關COM得知識中獲益,你的以前在COM中開發的應用程序、組件、工具都可以移入分布式的環境中。DCOM將為你屏蔽底層網絡協議的細節,你只需要集中精力於你的應用。

 

COM已經不再是單純的技術和編程規範,而是一種研發思想,在這裏,我們逐步分析COM與DCOM思想,帶領大家進入分布式系統的殿堂。

  這次,我們講解COM對象的創建字典對象的CreateObject函數。

/*
CreateObject函數創建字典對象,成功返回指向IUnknown的接口指針,通過QueryInterface函數獲取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);
}


本文出自 “享受科技帶來的快樂” 博客,請務必保留此出處http://liam2199.blog.51cto.com/2879872/1983765

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