opc client 在vc环境下编程

opc client 在vc环境下编程

ID:1206360

大小:151.50 KB

页数:13页

时间:2017-11-08

opc client 在vc环境下编程_第1页
opc client 在vc环境下编程_第2页
opc client 在vc环境下编程_第3页
opc client 在vc环境下编程_第4页
opc client 在vc环境下编程_第5页
资源描述:

《opc client 在vc环境下编程》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、OPCclient在VC环境下编程一.连接使用到变量的说明类型说明HRESULT函数返回值,用来检测函数返回值(如:初始化COM库,查找CLSID,创建OPC服务等),提供函数执行情况CLSID全球唯一标示符,用来确定OPC服务的标识,从注册表查找获得LPWSTRLPSTR和LPWSTR是Win32和VC++所使用的一种字符串数据类型。LPSTR被定义成是一个指向以NULL(‘’)结尾的8位ANSI字符数组指针,而LPWSTR是一个指向以NULL结尾的16位双字节字符数组指针OPC接口说明IOPC

2、Server*m_IOPCServer;IOPCServer接口及成员函数主要用于对组对象进行创建,删除,枚举和获取当前状态等操作.是OPC服务器对象的主要接口.接口及成员IOPCItemMgt*m_IOPCItemMgt;IOPCItemMgt接口及成员函数用于OPC客户程序添加、删除和组对象中组员等控制操作。IOPCSyncIO*m_IOPCSyncIO;IOPCSyncIO用于同步数据访问。OPCITEMDEFm_Items[1];OPCITEMDEF数组,包含着项的存取路径,定义和被请求的数据

3、类OPCITEMRESULT*m_ItemResult;OPCITEMRESULT数组,服务器用来告诉客户关于项的附加的信息(项句柄和规范的数据类型)OPCHANDLEm_GrpSrvHandle;OPC服务的句柄,在多个函数中都会用到使用到的函数说明CoInitialize(NULL);初始化COM库CoInitialize是Windows提供的API函数,用来告诉Windows以单线程的方式创建com对象。应用程序调用com库函数(除CoGetMalloc和内存分配函数)之前必须初始化com库。 

4、 返回值S_OK:该线程中COM库初始化成功S_FALSE该线程中COM库已经被初始化CoInitialize()标明以单线程方式创建。  使用CoInitialize创建可以使对象直接与线程连接,得到最高的性能。  CoInitialize并不装载COM库,它只用来初始化当前线程使用什么样的套间。使用这个函数后,线程就和一个套间建立了对应关系。线程的套间模式决定了该线程如何调用COM对象,是否需要列集等。  CoInitialize()并不会干扰客户和服务器之间的通信,它所做的事情是让线程注册一个套

5、间,而线程运行过程中必然在此套间。  CoInitialize和CoUninitialize必须成对使用查找OPC服务CLSIDFromProgID(L"OPC服务的名称",&clsid);通过ProgID,查找注册表中的相关CLSID参数:1.服务的名称2.CLSID型变量,用来接收注册表中查找到的CLSID创建OPC服务器对象CoCreateInstance(clsid,NULL,CLSCTX_LOCAL_SERVER,IID_IOPCServer,(void**)&m_IOPCServer);创

6、建OPC服务器对象,并查询对象的IID_IOPCServer接口参数:1.CLSID型变量,使用CLSIDFromProgID函数查找到的CLSID2.3.函数功能描述:用指定的类标识符创建一个Com对象,用指定的类标识符创建一个未初始化的对象。当在本机中只创建一个对象时,可以调用CoCreateInstance;在远程系统中创建一个对象时,可以调用CoCreateInstanceEx;创建多个同一CLSID的对象时,可以参考CoGetClassObject函数。  函数原形:  STDAPICoCr

7、eateInstance(  REFCLSIDrclsid,//创建的Com对象的类标识符(CLSID)  LPUNKNOWNpUnkOuter,//指向接口IUnknown的指针  DWORDdwClsContext,//运行可执行代码的上下文  REFIIDriid,//创建的Com对象的接口标识符  LPVOID*ppv//用来接收指向Com对象接口地址的指针变量  );  参数:  rclsid  [in]用来唯一标识一个对象的CLSID(128位),需要用它来创建指定对象。  pUnkOut

8、er  [in]如果为NULL,表明此对象不是聚合式对象一部分。如果不是NULL,则指针指向一个聚合式对象的IUnknown接口。  dwClsContext  [in]组件类别.可使用CLSCTX枚举器中预定义的值.  riid  [in]引用接口标识符,用来与对象通信。  ppv  [out]用来接收指向接口地址的指针变量。如果函数调用成功,*ppv包括请求的接口指针。  返回值:  S_OK  指定的Com对象实例被成功创建。  REGDB_E_C

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。