(分布式组件对象模型)是一系列微软的概念和程序接口,利用这个接口,客户端程序对象能够请求来自网络中另一台计算机上的服务器程序对象。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函数。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
/*
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);
|