<<Windows CE 系统进程外组件应用开发 >> 文章的解读

来源:互联网 发布:数据库课程设计实验 编辑:程序博客网 时间:2024/04/18 16:28

转载请标明是引用于 http://blog.csdn.net/chenyujing1234

解读文章:

http://blog.csdn.net/tttyd/article/details/6237904

这里和我的另一篇文章相比较来解读:

 http://blog.csdn.net/chenyujing1234/article/details/7373283

 

服务端:

不同点有两个:

1、创建方法可以参考我方法一样,只不过作者把它创建为exe方式了。如果是EXE,那么怎么用regsvrce.exe来注册呢

2、编译出错的处理方法不一样:

在原文中讲到"需要定义一些宏才能编译通过。另外定义一个 def 文件",所以增加了ServDemoPS工程。

// dlldata.c 的包装//#ifdef _MERGE_PROXYSTUB // 合并代理存根(stub) DLL#define REGISTER_PROXY_DLL //DllRegisterServer 等#ifndef _WIN32_WCE#define _WIN32_WINNT 0x0400//对于 WinNT 4.0 或安装了 DCOM 的 Win95#else#define WIN32#endif#define USE_STUBLESS_PROXY//仅当使用 MIDL 开关 /Oicf 时定义#ifndef _WIN32_WCE#pragma comment(lib, "rpcns4.lib")#endif#pragma comment(lib, "rpcrt4.lib")//#define ENTRY_PREFIXPrx#include "dlldata.c"#include "ServDemo_p.c"//#endif //_MERGE_PROXYSTUB


 

但在我的原文里也

提到了编译出错的情况,那时是通过

后把Add.h里的

#ifndef _CE_DCOMDECLARE_REGISTRY_RESOURCEID(IDR_ADD)#endif

改为

//#ifndef _CE_DCOMDECLARE_REGISTRY_RESOURCEID(IDR_ADD)//#endif

来修改的。

 

 

客户端:

不同的地方是调用的方法不一样:

 

在原文中有"EventHandler.h,协助客户端在不使用 ATL 情况下接受 COM Server的事件",其实代码里并没有实现COM Server的事件的接收,而只是主动调用,

在原文中它的用法是:

#import "..\ServDemo\CE6_SDK (ARMV4I)\Debug\ServDemo.exe"using namespace ServDemoLib;#include "EventHandler.h"using namespace TEventHandlerNamespace;typedef TEventHandler<IAlgorithm,_IAlgorithmEvents> EventHandler;


IAlgorithm,_IAlgorithmEvents未去定义,但它是通过ServDemo.exe引进来的.

 

 

而在我的文章中是通过sink方法,查看Sink.h

显然他的方法更简单一点。

原创粉丝点击