现在的位置: 首页 > 综合 > 正文

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

2013年09月05日 ⁄ 综合 ⁄ 共 2525字 ⁄ 字号 评论关闭

这篇文章说明了如何使用
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

 

抱歉!评论已关闭.