OPC 技术论坛

OPC 技术

探讨OPC Server相关技术

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

 

 COPCServer类继承IOPCServer接口,实现IOPCServer的所有接口。

 1) OPC DA头文件

     在开发opc server的过程中,我们要包含的头文件主要有:

u       opcda.h:   定义IOPCServer, IOPCItemMgt, IOPCAsyncIO OPC DA接口;

u       opcda_i.c : Classs ID 定义;

u       opcError.h: OPC Error 类型定义;

u       opccommon.h: 定义IOPCCommon,IOPCServerList等接口

u       opccommon_i.c: Class ID 定义

这些头文件都可以直接从OPC 网站上面的分发包里面安装获得。为了方便大家使用,我把这些文件上传这里了。

 https://files.cnblogs.com/opc521/OPCDAInclude.zip

NOTE如果机器上以前没有注册过opcproxy.dll,一定要先注册这个dll,这是实现OPC DA接口定义及代理/存根的dll. 至于什么是代理/存根,大家请参阅其他的关于COM DCOM的书籍。

 

 2)添加COPCServer 类定义

       Project->Add Class -> C++ Class

 

VS 提示IOPCServer 没有找到,是否继续,按“Yes”继续。我们将在后面添加“IOPCServer”的定义。

 

NOTE这里,为了方便统一管理生成COPCServer对象,我们没有从ATL 中的CComCoClass类派生。

 

将需要包含的头文件(opcda.h, opcda_i.c)拷到include目录下(solution 下面的新建的一个子文件夹),在“OPCServer.h”文件中添加:

#include "opcda.h"

 

编译一下,确保没有错误。

 

3)实现IUnknown 接口

IOPCServer继承IUnknown接口,所以COPCServer首先要实现IUnkonw接口。

 

a.       添加引用计数变量

private:

ULONG m_lRefCount;

 

b.       添加接口定义到OPCServer.h

// the IUnknown Functions

STDMETHODIMP         QueryInterface( REFIID iid, LPVOID* ppInterface);

STDMETHODIMP_(ULONG) AddRef( void);

STDMETHODIMP_(ULONG) Release( void);

 

c. 添加接口函数实现:

IUnknown Interfaces

 

4. 添加IOPCServer接口函数

     a. 在"opcserver.h"中添加函数定义

 

IOPCServer Functions

     b. 在"OPCServer.cpp"中添加函数实现

     

Code

 

这些接口函数现在都是空函数,我们会在以后的章节中逐步实现这些函数。

posted on 2008-10-06 10:34  CheneySHI  阅读(3189)  评论(1编辑  收藏  举报