在VB中怎么实现COM+
来源:互联网 发布:java cs架构开发 编辑:程序博客网 时间:2024/05/10 14:16
终于试验成功了!
我在原本只有win2000 professional 的机器上又安装了一个win2000 server,并将其配置成主域
控制器,然后在另一台win98机器上用Administrator登录,启动VB,写个小程序试了一下,OK!
为避免大家继续在黑暗中摸索,我现将试验用的具体例子及步骤详述如下(一个最简单的例子):
1、在win2000 server机器上用VB(+SP5.0)创建一个ActiveX(DLL)工程,将工程名字改为“COM_Test”
2、添加一个类模块,名称为“ClsAdd”,并输入如下几行代码:
Option Explicit
Public x, y As Integer
Public Function myAdd() As Integer
myAdd = x + y
End Function
3、打开“工程属性”对话框,选择“生成”,选中“自动升级”;选择“部件”,选中“远程服务器文件”(此点很重要,否则编译时不会生成类型库文件COM_Test.TLB)及“二进制兼容”,最后“确定”
4、保存并编译,生成“Com_Test.dll”
5、打开“控制面板/管理/组件服务”,在“COM+应用程序”下利用“COM+应用程序安装向导”创建一个空的COM+应用程序,名称为“MyTest”
6、在“MyTest”下,新建“组件”,在“组件安装向导”中,选择“安装新组件”(注意:不要使用“导入已被注册的组件”),然后将第4步生成的Com_Test.dll及Com_Test.tlb都添加进来(两个文件都要!),完成。
7、右击“COM+应用程序”上方的“我的电脑”,选择“属性”,然后在“属性”对话框中的“默认属性”页下,将“默认身份验证级”改为“无”,确定。
8、右击“MyTest”,导出客户端的“应用代理”。注意:在导出对话框中,必须选择“应用程序代理”而不是“服务器应用程序”!
9、将导出后的两个文件(即应用程序代理)安装到win98机器上,此时它会在注册表中添加几处注册项,并在C:\program files\ComPlus Applications下产生一个以CLISD命名的文件夹,打开来可看到Com_Test.tlb及Apl82.tmp二个文件。
注意:win98机器上是没有Com_Test.dll文件的,该文件在win2000 server机器上!
好了,准备工作至此结束,下面在win98机器上来验证你的COM+配置型组件能否工作。(先用Administrator及口令登录)
10、启动VB(+sp5.0),创建一个exe工程,在窗体上放置一个文本框与一个命令按钮,并在命令按钮的Click事件中加入代码:
Dim ox as object
set ox=createobject("Com_Test.ClsAdd","win2000 server 的IP地址")
ox.x=12
ox.y=13
text1.text=ox.myAdd()
执行程序,win2000 server 机器的硬盘灯一阵闪烁之后,Text1中欢快地跳出“25”
---成功了!
以上经验是在我经过多次痛苦的失败之后摸索出来的,看来靠别人不如靠自己。
后记:
1、此前,我对有关COM+的内容可以说是一片空白,什么都不懂,甚至也没做过有关DCOM的试验。近来空闲,络续看了点CSDN论坛中的提问与回答,可没有一个让人满意的。万不得已,自力更生。
2、个人以为,COM+组件并不一定要配置在主域控制器上,但必须配置在某个域中的某台win 2000 Server上,而不是一般的2000 professional上(可能考虑到安全性)。
3、配置COM+组件不是在win98机器上的,而是在win 2000 Server上。比如,你在win98机器上安装
应用程序代理后,找不到相应的DLL文件,只有TLB文件(类型库),该DLL文件在win 2000 Server上由Dllhost.exe来负责装入内存。
4、若是创建非配置型组件,则第一步中不是创建一个ActiveX(DLL)工程,而是ActiveX(EXE)工程,
因为该exe文件在服务端不是由Dllhost.exe来负责装入内存,而是自行执行。此种情形下,当然也
就不需要第5至9步的操作了。
我在原本只有win2000 professional 的机器上又安装了一个win2000 server,并将其配置成主域
控制器,然后在另一台win98机器上用Administrator登录,启动VB,写个小程序试了一下,OK!
为避免大家继续在黑暗中摸索,我现将试验用的具体例子及步骤详述如下(一个最简单的例子):
1、在win2000 server机器上用VB(+SP5.0)创建一个ActiveX(DLL)工程,将工程名字改为“COM_Test”
2、添加一个类模块,名称为“ClsAdd”,并输入如下几行代码:
Option Explicit
Public x, y As Integer
Public Function myAdd() As Integer
myAdd = x + y
End Function
3、打开“工程属性”对话框,选择“生成”,选中“自动升级”;选择“部件”,选中“远程服务器文件”(此点很重要,否则编译时不会生成类型库文件COM_Test.TLB)及“二进制兼容”,最后“确定”
4、保存并编译,生成“Com_Test.dll”
5、打开“控制面板/管理/组件服务”,在“COM+应用程序”下利用“COM+应用程序安装向导”创建一个空的COM+应用程序,名称为“MyTest”
6、在“MyTest”下,新建“组件”,在“组件安装向导”中,选择“安装新组件”(注意:不要使用“导入已被注册的组件”),然后将第4步生成的Com_Test.dll及Com_Test.tlb都添加进来(两个文件都要!),完成。
7、右击“COM+应用程序”上方的“我的电脑”,选择“属性”,然后在“属性”对话框中的“默认属性”页下,将“默认身份验证级”改为“无”,确定。
8、右击“MyTest”,导出客户端的“应用代理”。注意:在导出对话框中,必须选择“应用程序代理”而不是“服务器应用程序”!
9、将导出后的两个文件(即应用程序代理)安装到win98机器上,此时它会在注册表中添加几处注册项,并在C:\program files\ComPlus Applications下产生一个以CLISD命名的文件夹,打开来可看到Com_Test.tlb及Apl82.tmp二个文件。
注意:win98机器上是没有Com_Test.dll文件的,该文件在win2000 server机器上!
好了,准备工作至此结束,下面在win98机器上来验证你的COM+配置型组件能否工作。(先用Administrator及口令登录)
10、启动VB(+sp5.0),创建一个exe工程,在窗体上放置一个文本框与一个命令按钮,并在命令按钮的Click事件中加入代码:
Dim ox as object
set ox=createobject("Com_Test.ClsAdd","win2000 server 的IP地址")
ox.x=12
ox.y=13
text1.text=ox.myAdd()
执行程序,win2000 server 机器的硬盘灯一阵闪烁之后,Text1中欢快地跳出“25”
---成功了!
以上经验是在我经过多次痛苦的失败之后摸索出来的,看来靠别人不如靠自己。
后记:
1、此前,我对有关COM+的内容可以说是一片空白,什么都不懂,甚至也没做过有关DCOM的试验。近来空闲,络续看了点CSDN论坛中的提问与回答,可没有一个让人满意的。万不得已,自力更生。
2、个人以为,COM+组件并不一定要配置在主域控制器上,但必须配置在某个域中的某台win 2000 Server上,而不是一般的2000 professional上(可能考虑到安全性)。
3、配置COM+组件不是在win98机器上的,而是在win 2000 Server上。比如,你在win98机器上安装
应用程序代理后,找不到相应的DLL文件,只有TLB文件(类型库),该DLL文件在win 2000 Server上由Dllhost.exe来负责装入内存。
4、若是创建非配置型组件,则第一步中不是创建一个ActiveX(DLL)工程,而是ActiveX(EXE)工程,
因为该exe文件在服务端不是由Dllhost.exe来负责装入内存,而是自行执行。此种情形下,当然也
就不需要第5至9步的操作了。
- 在VB中怎么实现COM+
- 在VB.NET中怎么实现多窗体同步
- 在VB.NET中怎么实现多窗体同步(1)
- 在 vb.NET 中使用 COM+ 服务
- 在vb中怎么引入ADODB类型
- mod函数在vb中怎么用?
- [VB.NET]在Datagridview中添加数据,并且是成批添加修改,怎么实现
- 在VB中实现多线程!
- [VB.NET]VB的vbFromUnicode、vbUnicode在vb.net中怎么使用
- 如何在Store Procedure中调用VB COM
- 在VC中调用VB编写的COM组件范例
- 在VC中调用VB编写的COM组件范例
- 在VB里怎么实现移位的算术运算操作
- VB中怎么换行
- MCI播放器在VB中实现
- 在VB.NET中实现拖放操作
- 在vb中实现鼠标手势
- 在VB中实现异步调用
- 在SQLite数据库中如何列出所有的表和索引
- SQL Server 智能感知插件SQL Prompt 4 智能提示
- Comparator和Comparable
- system_v 简单操作
- 关于xcode编译事件shell脚本问题
- 在VB中怎么实现COM+
- 有上下界的网络流专辑
- asp.net页生命周期示图
- hadoop学习笔记之-hbase完全分布模式安装
- EasyBook組件常用設置及小技巧
- webservice(五)有关Soap协议的客户端和服务器端的实例代码(基础与进阶)
- 技术(7)——让函数根据一个以上的对象类型来决定如何虚化
- 移动云计算中选择推广应用程序的战术
- Property's synthesized getter follows Cocoa naming convention for returning 'owned' objects