本文欢迎转载,唯请注明出处及作者 blackcolor@263.net---------------------------------------------------
创建一个COM+应用
以第二节我们创建的进程内组件为例子,将此进程内组件安装到windows 2000上的com+上,然后从win98调用它。
一、对windows 20001)在win2000建立一个目录step012)将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=0x8000401a14)右击“step01”,选择“属性”菜单,在“step01属性”窗口中,选择“标识”标签,修改“帐户”为“此用户”,输入用户为:administrator,输入该用户的密码与确认密码。15)单击“确定”,再运行client.exe,此时应该提示:The OS is WINNT,证明com+安装正确
二、从windows 2000上导出客户端的安装文件16)右击“step01”,选择“导出”菜单,打开“欢迎使用COM应用程序导出向导”窗口17)单击下一步,设置目录为step01所在的目录,文件名为step01.msi,“导出为”选择“应用程序代理-安装在其它计算机上,用来访问此计算机”,单击“下一步”,单击“完成”。
三、对windows 981)在win98新建立一个目录step01new2)将第二节中的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.dllregsvr32 /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登录。