想深入Dcom朋友快请进!!(100分)

  • 主题发起人 leezhenghui
  • 开始时间
L

leezhenghui

Unregistered / Unconfirmed
GUEST, unregistred user!
记得我从一本书看到:COM有两种存在形式,动态连接库(DLL)和可执行程序,
但DCOM(分布的COM,在网络上的另一台计算机上执行)必须是可执行程序.
因为DCOM不可能在客户程序的内存空间运行,所以不能是动态连接库.
但我现在这样做
Activex-->ActiveX Library
Multitier--->Remote Data Module
建立了一个三层数据库程序的应用层程序,再建立客户端程序(用TSocketConnetion连接中间层的远程数据模块)
,然后将两个程序放置到不同的计算机上,结果成功的运行了。
这样我的问题就是:我记得远程数据模块其本质就是一个Dcom服务器(不知这么说对不对??),
但书上说(论坛里也有人说)Dcom必须做成exe,不能做成dll,
但我这样试结果成功了,它是在谁的进程空间里运行的呢?
倒底Dcom可不可以做成dll的??
 
DCOM要给别人远程调用起动,如果是DLL,别人就不能起动啦,所以不能做成DLL。
 
to tinytao:可是我将远程数据模块做在dll里,可以被调用到!!这是为什么呢?
难道远程数据模块的本质不是一个dcom吗??
 
也许疑问还是在RDM是DCOM吗?
 
dcom服务器必须得做EXE吗??????
如果是,那为什么我的中间服务器做成了一个dll,
分发到不同的机器上后,也能成功的调用。
 
exe和dll没有什么本质区别,都是pxe格式,只是入口函数不一样而已,
对于dcom代码,最终都是通过guid找到你的exe或者dll,然后调用其中的代码,
至于远程调用,只是用到rpc罢,最终都是去调用dll中的函数。
我曾经做过在exe中输出一个函数,让另一个exe调用,同样可以。
-------------
http://www.8421.org
 
远程数据模块做在dll里,当然可以调用,但你要知道在那个服务器、调用那个DLL.
DCOM调用时,你不知道被调用的DCOM在那个服务器。
 
远程调用要设置ComputerName
 
如果dcom与MTS连接,就必须是dll的格式,MTS是不允许exe 文件的 ,
反之,·就必须 是exe 的格式,因为 dll 无法被远程计算机激活(本地),
关键是应用程度服务器,并不是dll 和 exe 的问题 ,
 
dll不能被远程激活
 
dll不能被远程激活,我做过实验的,用DCOMConntion连接DCOM的DLL是行不通的。
 
服务器端不是有个scktsrvr.exe吗?远程调用是通过它来代理的。
用TSocketConnection其实不能算DCOM,只能算COM
 
顶部