本文欢迎转载,唯请注明出处及作者 blackcolor@263.net
---------------------------------------------------
创建一个COM+应用
以第二节我们创建的进程内组件为例子,将此进程内组件安装到windows 2000上的com+上,
然后从win98调用它。
一、对windows 2000
1)在win2000建立一个目录step01
2)将client.exe和step01.dll拷贝到step01目录下
3)打开windwos 2000的菜单“开始|程序|管理工具|组件服务”
4)展开“组件服务->计算机->我的电脑->COM+应用程序”
5)右击“COM+应用程序”,从菜单中选择“新建|应用程序”,打开“欢迎使用COM应用
程序安装向导”窗口
6)单击“下一步”,再单击“创建一个空的应用程序”按钮
7)在应用程序名称中输入“step01”,不用修改激活类型,单击“下一步”
8)再单击“下一步”,然后单击“完成”。我们创建了一个空的应用。
9)展开“step01”,右击“组件”,从弹出的菜单中选择“新建|组件”,打开“欢迎使
用COM组件安装向导”窗口
10)单击“下一步”,再单击“安装新组件”按钮
11)找到“step01”目录,选择step01.dll文件,单击“下一步”,再单击“完成”
12)这样我们创建了一个简单的com+应用
13)在MS DOS窗口运行client.exe是却发现提示为:create com failed! hr=0x8000401a
14)右击“step01”,选择“属性”菜单,在“step01属性”窗口中,选择“标识”标签,
修改“帐户”为“此用户”,输入用户为:administrator,输入该用户的密码与确认密码。
15)单击“确定”,再运行client.exe,此时应该提示:The OS is WINNT,证明com+安装正确
二、从windows 2000上导出客户端的安装文件
16)右击“step01”,选择“导出”菜单,打开“欢迎使用COM应用程序导出向导”窗口
17)单击下一步,设置目录为step01所在的目录,文件名为step01.msi,“导出为”选择
“应用程序代理-安装在其它计算机上,用来访问此计算机”,单击“下一步”,单击“完成”。
三、对windows 98
1)在win98新建立一个目录step01new
2)将第二节中的client.exe和step01ps.dll拷贝到step01new目录下,将上面导出的step01.msi
和step01.msi.cab拷贝到step01new目录下
3)用“regsvr32 step01ps.dll”命令注册proxy/stub,
4)在资源管理器中单击step01.msi,将自动安装该客户端
5)运行client.exe,如果提示为:The OS is WIN95/98,那么需要注销原来注册的step01.dll,
可以找到原来的step01\debug目录下用regsvr32 /u step01.dll注销
四、可能的错误
在WINDOWS 98中可能出现:create com failed! hr=0x80040154的错误
需要卸在全部已安装的内容重新安装:
regsvr32 /u step01ps.dll
regsvr32 /u step01.dll
在“控制面板|添加/删除程序”中选择“step01(Application Proxy)”进行卸载
然后,在资源管理器中单击step01.msi,将自动安装该客户端,
用regsvr32 step01ps.dll注册proxy/stub
五、说明:1)在以上的设置中我没有修改任何其他没有提到的任何属性;
2)我没有使用任何关于com+的特性,只是简单的将一个进程内组件安装成com+应用,
请参考MSDN有关com+特性的资料
3)如果不想拷贝step01ps.dll到客户机器上,在创建组件时的窗口
“ATL COM AppWizard - Step 1 of 1”中选择“Allow merging of proxy/stub code”
4)卸载该客户端请在“控制面板|添加/删除程序”中选择“step01(Application Proxy)”进行卸载
5)在windows 2000请用Administrator登录。