Windows CE 系统进程外组件应用开发

这篇文章说明了如何使用 WindowS CE 6.0 系统的 DCOM ,开发 com 服务进程。向客户端提供跨进程的 COM 组件服务,以及自定义接口代理 / 存根 dll 的建立,注册。

假定你需要创建一个实时的控制程序,需要一直在后台运行着,而你的客户端却是多个或多样性,客户端的开发语言不确定性。这就需要创建一个 COM 服务进程程序。


 

Windows CE 镜像中需要包括 DCOM 组件服务

       不幸的是由于系统空间的限制,很多基于 Windows CE 系统的 OS 都不支持 DCOM 需要使用 Platfom Builder 向我们的 Windows CE 镜像中添加 DCOM

       另外必须导出支持 DCOM API Windows CE SDK 开发包。

其它的一些工具我们需要准备的注册工具

GuiRegsvrCE.exe  用于注册你的 COM DLLs

这类工具可以在网上搜索到

 

创建 COM Server

       由于 Windows CE 不支持自动化列集 / 散集,因此我们需要建立自己的代理 / 存根,用与 COM Server Client 之间的接口方法参数的列集与散集。当然,在 windows XP/2000 系统中,如果我们在 COM 方法中使用 OLE 兼容的数据类型,我们可以不提供代理 / 存根 DLL 。如果需要使用自定义的数据类型则都需要建立对应的代理 / 存根代码,并注册之后才能使用。

       由于上述原因,开发 WindowsCE COM Server 时,需要将 IDL 文件 LIBRARY 块中的 dispinterface 定义代码移到 LIBRARY 块外部来。所有的接口都必须在 LIBRARY 快的外部定义,这样 MIDL 编译器将生成恰当的代理 / 存根代码。

       注意, sink dispainterface 接口被重定义,被标识为 dual 并从 IDispatch 接口派生。、

 

 

 

代理存根 DLL 的创建 Proxy/Stub

PC 端的代理存根的创建差不多,需要注意的是,需要定义一些宏才能编译通过。另外定义一个 def 文件,注明要到处的函数。

 

编译好以上两个工程之后,基本上进程外 COM Server 工作算是完成了。在机器是使用是还需注册才行。

 

 

如何调用进程外组件 Client 程序)

       对应客户端而已,基本上和调用进程内组件没什么区别了。在这里我提供了一些辅助代码《EventHandler.h》,协助客户端在不使用 ATL 情况下接受 COM Server 的事件。


源代码下载: http://download.csdn.net/source/3080188

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值