实战COM(05)----创建一个COM+应用

原创 2001年07月24日 15:18:00

本文欢迎转载,唯请注明出处及作者 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登录。

com 与com+加是有什么区别

COM的产生         在以前程序设计过程中,程序员把它们的函数库放在一个叫做目标(Object)文件的单独文件中,在这些文件中,包含了编译过的代码。当程序员要使用一个特别的目标文件的时...
  • guomei
  • guomei
  • 2007年06月23日 17:13
  • 617

pb9中COM的创建和调用

  pb中不仅可以调用com(请参见http://blog.csdn.net/precipitant/archive/2007/09/05/1773126.aspx) ,也可以创建com。  创建方法...
  • precipitant
  • precipitant
  • 2007年09月12日 16:15
  • 2570

delphi操作windows COM+组件服务二

使用COM接口1. 找到接口描述文件COMAdmin_TLB.pas还是用了个笨办法,新建一个ActiveX Library,再新建一个COM Object,随便起个名字吧。保存。然后选菜单View-...
  • jian704
  • jian704
  • 2008年05月23日 17:21
  • 1210

COM、COM+和DCOM的定义和区别

解释COM、COM+和DCOM的定义和区别? COM是组件对象模型,是实现3/N层应用的基础,它的目的就是组件化,应用程序分层.DCOM是分布式的COM,也就说可以远程的创建,最初它利用远程自动化来...
  • Baple
  • Baple
  • 2014年09月25日 09:30
  • 1295

windows server 2008 r2 COM+配置

1 服务器角色,增加“应用程序服务器”。 2 组件服务-计算机-我的电脑-属性-默认属性页的默认身份验证级别是“连接”,默认模拟级别是“标识” 3 COM安全页-访...
  • yz304zhang
  • yz304zhang
  • 2017年02月14日 11:13
  • 749

com+组件的注册,卸载和管理

com+打开命令:dcomcnfg 注册和卸载 “Regsvr32.exe”命令是用来对“ActiveX控件”进行注册的。Regsvr32命令格式/u       卸载ActiveX控件/s     ...
  • educast
  • educast
  • 2008年09月05日 21:12
  • 4757

PB中如何编写COM和COM+程序.

    COM/COM+作为取代OLE的一种新技术,问世已经很久了,PB7中也早已提供了对它的支持,不过从现实情况上看,似乎大家使用到的不是很多,其实对于新一代的互联网应用,它还是能够发挥很大作用.下...
  • daixf_csdn
  • daixf_csdn
  • 2004年11月06日 11:20
  • 4826

.Net下开发COM+组件

一、问题的提出1、最终用户的每次请求,都将读取Mapping文件--可以通过缓存解决; 2、子系统需要不断的写入Mapping文件--也可以先写入内存然后批量写入文件解决; 二、分析解决问题由于分别有...
  • yellow1234
  • yellow1234
  • 2007年11月02日 18:30
  • 336

COM组件开发(三)——类厂对象

COM类厂对象的实现         COM客户程序要使用COM对象是通过COM库创建而来的,而实际上COM库是调用COM对象的类厂来创建的。COM类厂对象也是一个COM对象,所以它也从IUnkno...
  • q5806622
  • q5806622
  • 2015年02月04日 19:32
  • 2468

COM编程精彩实例--COM对象

创建一个COM对象的简单过程: 1)调用COM API接口 ::CoCreateInstance(),可以直接调用或通过一个已经包装的c++类调用。这个调用需要指定两个ID,一个是要实例化的类的ID...
  • zang141588761
  • zang141588761
  • 2016年12月20日 15:28
  • 767
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:实战COM(05)----创建一个COM+应用
举报原因:
原因补充:

(最多只允许输入30个字)