记录一个错误:COM进程外服务器的启动

在完成所有的进程外源代码编辑后,生成了相应的.exe文件。根据书上说“COM解决的办法是维护一个被登记的类厂的内部表格,根据客户请求的CLISD得到相应的类厂。若找不到相应类厂,COM将在注册表中查找并启动相应的EXE,此EXE可调用COM函数CoRegisterClassObject完成类厂的登记,以便COM能找到它们。”应该是客户端根据注册表自动启动.exe组件服务器,在我实际操作过程中始终如法达到这一点,只能是先启动服务器。

后来才发现是复用了注册文件register.cpp, 没有修改关于地址值键值的名称。书上原话是——本地服务器将把相应的EXE文件的位置登记在关键字LocalServer32下而不是InProcServer下。

相应的代码修改为:
#ifdef OUTPROC_SERVER
setKeyAndValue(szKey, “LocalServer32”, szModule) ;
#else
setKeyAndValue(szKey, “InprocServer32”, szModule) ;
#endif

之后可以查看注册表,地址在LocalServer32下,客户端启动COM组件正常。

切记:复用代码时不同点的修改。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值