客户端调用DCom为什么老提示“类没有注册”???

hexenzhou 2002-06-29 08:24:48
在Win2000的机器上编了一个DCom,然后在另一台Win98机器import type library倒入类型库,然而连接的时候提示“类没有注册”。配置了DComcnfg,按照李维的方法配置了各种组合。可是就是不行,搜索了相关的帖子,没有找到答案?有谁知道吗??
...全文
205 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hexenzhou 2002-07-03
  • 打赏
  • 举报
回复
问题果然出现在网络上,把客户端考到另外一台win98机器上又启动成功。
可是网络有什么问题呢?除了网卡不一样外,网络配置一样的呀?
在另外一台win98机器上运行dcom还有另外一个问题,客户端可以调用服务器
的method,却无法使用dcom的回调事件(event),如果客户端在服务器端
(win2000)上运行,又可以使用dcom的回调事件。在dcom服务器的initialize
方法上打了一个断点,发现运行initialize整个过程没有问题,
但是在退出initialize的时候编译器捕捉到一个异常EOleSysError,
在initialize方法加上try...except...end块却没有捕捉到。
slimbamboo 2002-07-01
  • 打赏
  • 举报
回复
在服务器端 客户端注册midas.dll winnt/system32
用应用服务器的用户名和密码登陆
hexenzhou 2002-07-01
  • 打赏
  • 举报
回复
客户端用的是win98,当把网络设置为用户级访问控制,安全列表来自win2000后
出现‘服务器访问失败’,看来有出现新的问题了。把客户端换成win2000后,问题依旧。
hapland 2002-07-01
  • 打赏
  • 举报
回复
你用的是Windows 98吗??
如果是的尝试将共享的网络设置设为
用户级访问控制
祝你好运!
hexenzhou 2002-07-01
  • 打赏
  • 举报
回复
我已经把服务器软件拷贝到客户端运行注册了一下,可是就是不行。
Tine2 2002-07-01
  • 打赏
  • 举报
回复
你应当把在服务器端注册好的组件导出,然后把导出的文件拷贝的客户端机器上,执行该组件包,就在客户端注册了。或者用OleCheck('''')函数也行,此函数可以省略你手动注册。
hexenzhou 2002-07-01
  • 打赏
  • 举报
回复
DComcnfg配置Com组件,有启动权限和访问权限,客户端要调用win2000的DCom,win2000肯定要知道登陆的客户端的权限信息,可是我的win2000怎样才能知道当前有多少个客户端登陆并得到它们的权限信息呢?我用的是win2000 professional.
hexenzhou 2002-07-01
  • 打赏
  • 举报
回复
试过你们的方法了,还是不行,我觉得问题出现在网络上,刚开始的时候老出现"RPC服务器无法使用",或者"拒绝访问",调试一下网络后又出现了"类没有注册",我的DCom上有两个automation object,把服务器软件在客户端运行注册后,打开DComcnfg,发现只有一个automation object 另一个这么也显示不出来,我不知道问题出现在那里????
hexenzhou 2002-07-01
  • 打赏
  • 举报
回复
没有效果,已经试过很多遍了。
qiandeng 2002-06-30
  • 打赏
  • 举报
回复
用到的组件都要注册一下
仰望星空 666 2002-06-30
  • 打赏
  • 举报
回复
你把客户端程序通过网络在服务器端运行一下就行了。:)
hexenzhou 2002-06-29
  • 打赏
  • 举报
回复
我的客户端是有Midas.dll,因为客户端也装有delphi,况且我也不需要midas.dll,因为我没有用delphi的remote data module,我编写的是out process(.exe)DCom,客户端在倒入类型库的时候选择了“install..."也就是让delphi在导入类型库时候创建了它的组件。
然后用下列方法连接:
CarNotifyDCom := TCarNotifyDCom.Create(Self);
CarNotifyDCom.RemoteMachineName := 'Hexen-Computer';
CarNotifyDCom.ConnectKind := ckRemote;
CarNotifyDCom.Connect;

TCarNotifyDCom也就是在导入类型库的时候创建的组件。

关于第二条要在客户端运行服务器,我觉得没有必要,如果是那样的话那分发客户端岂不是很麻烦?
chechy 2002-06-29
  • 打赏
  • 举报
回复
1)需要拷贝MIDAS.DLL到SYSTEM目录下,然后用regsvr32注册。
2)需要注册应用服务器,最简单的方法就是将应用服务器在客户端运行一下。

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧