|
分布式组件对象Distribute Component Object Model(DCOM)的配置(1)
分布式组件对象Distribute Component Object Model(DCOM)的配置XML:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 上海博达数据通信有限公司 VOIP项目部 龚超 一. 进程内组件(DLL)的配置 1) 组件端(Component)或服务器端(Server)的配置(远程) 以Windows XP系统为例. a)书写并用MIDL编译IDL和组件代码生成*.h,dlldata.c,*_i.c,*_p.c,*.tlb等文件 b)写*.def文件格式如下: ASPectratio="t" v:ext="edit"> c) 书写*.mk文件格式如下用来编译残根(Stub)和代理(Proxy)
d)用nmake /f *.mk编译上述的MK文件编译生成残根(Stub)和代理(Proxy) e)编译组件代码生成组件(DLL) f)用regsvr32 *.dll注册组件 g) 用regsvr32 stub/proxy.dll注册代理 h) 用regedit.exe打开注册表,并用GuidGen.exe生成一个ID {8AF1E59E-D92F-41ac-A190-482FE0E7035A} 在注册表项[HKEY_CLASSES_ROOT\AppID]下面新建一个项名字为{8AF1E59E-D92F-41ac-A190-482FE0E7035A},并在下面新建一个字串命名为DllSurrogate,其数据可命名为自己编写的代理托管程序的路径及程序名,或为空(表示使用系统默认的代理托管程序dllhost.exe)如图: I)进到注册表的[HKEY_CLASSES_ROOT\CLSID]键下,找到注册组件的GUID打开GUID,新建一个字串名AppID,数据为h)步骤生成的GUID,同样在他的代理残根键下也新建一个字串名AppID,数据为h)步骤生成的GUID.
CLSID健中不能设置LocalServer32、LocalServer、LocalService等子健。CLSID中要包含InProCServer32子健. 在代理残根(STUB/PROXY)的InProcServer32中,其内键値为所在服务器注册的代理残根的DLL的路径。 在组件侧CLSID中的InProcServer32中的默认路径为组件的路径。 j)运行Dcomcnfg.exe进行DCOM配置.出现界面 选中h)步骤生成的GUID.右键点属性
自定义中加入GUEST帐户,且GUEST帐户不能被禁用.
k)本机运行客户程序进行测试. l)组件ID参考下图: m)如果有多个组件需要配置请重复步骤I) n)如果要生成多个APPID请重复步骤h)---k) 2) 调用端或客户端(Client)的配置 以Windows98配置为例; a) 用regsvr32 *.dll注册组件 b)用regsvr32 stub/proxy.dll注册代理 c)用regedit.exe打开注册表,进入AppID键项,在注册表项[HKEY_CLASSES_ROOT\AppID]下面新建上面组件端生成的GUID如{8AF1E59E-D92F-41ac-A190-482FE0E7035A},并在下面新建一个字串命名为RemoteServerName,远程组件所在的机器名如\\GC如图:
d):进到注册表的[HKEY_CLASSES_ROOT\CLSID]键下,找到注册组件的GUID打开GUID,新建一个字串名AppID,数据为组件端配置h)步骤生成的GUID,同样在他的代理残根键下也新建一个字串名AppID,数据为组件端配置h)步骤生成的GUID{8AF1E59E-D92F-41ac-A190-482FE0E7035A}.如图
e)删除组件对应键下InProcServer32项下的默认值即本地组件的地址(清空)如图 f)保留残根/代理的InProcServer32下默认的代理地址如图 g) CLSID健中不能设置LocalServer32、LocalServer、LocalService等子健。CLSID中要包含InProcServer32子健. h)运行Dcomcnfg.exe进行DCOM配置.出现界面依次配置
后面为点Property后出现:
i)配置完成,本机运行客户程序进行测试. j)如果有多个组件需要配置请重复步骤d)—g) k)如果要生成多个APPID请重复步骤c)---h) 二. 进程外组件(EXE)的配置 1) 组件端配置 以Windows XP系统为例. 同进程内组件端j)---k) 2) 客户端配置: 以Windows 98系统为例. 运行进程外组件进行自注册,或运行命令*.exe /regserver 然后:
后面为点Property后出现:
配置完成,本机运行客户程序进行测试.
|