资源描述:
《opcclient浏览opcserver的简单实例程序源代码》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、OPCClient浏览OPCServer的简单实例简单程序源代码://main.cpp//************************************************************************************************//浏览本地OPC服务器//************************************************************************************************#d
2、efine_WIN32_DCOM//NeededinordertocallCoInitializeEx()#include#include#include#import"C:WINNTsystem32OpcEnum.exe"no_namespace//根据OpcEnum.exe更改#include"opcda.h"#include"opcenum_i.c"//--------------------------------------
3、------------------------------------------------------------------------//版本号----可以从规范中查到staticconstCLSIDCATID_OPCDAServer10={0x63d5f430,0xcfe4,0x11d1,{0xb2,0xc8,0x0,0x60,0x8,0x3b,0xa1,0xfb}};//{63D5F430-CFE4-11d1-B2C8-0060083BA1FB}staticconstCLSIDCATID
4、_OPCDAServer20={0x63d5f432,0xcfe4,0x11d1,{0xb2,0xc8,0x0,0x60,0x8,0x3b,0xa1,0xfb}};//{63D5F432-CFE4-11d1-B2C8-0060083BA1FB}//[uuid(CC603642-66D7-48f1-B69A-B625E73652D7)]interfaceCATID_OPCDAServer30//-------------------------------------------------------
5、-------------------------------------------------------voidOPCServerList();intmain(intargc,char*argv[]){HRESULThr;intn_return=0;try{//InitializeCOMif(FAILED(hr=CoInitializeEx(NULL,COINIT_APARTMENTTHREADED)))_com_issue_error(hr);}catch(_com_errore){std::
6、cout<<"ERROR("<0)std::cout<<(TCHAR*)e.Description()<7、erList(){CLSIDclsid;clsid=CLSID_OpcServerList;//在opcenum_i.c中定义IOPCServerList*gpOPC=NULL;DWORDclsctx;clsctx=CLSCTX_LOCAL_SERVER;//本地服务IIDIIDOPCServerList=IID_IOPCServerList;//在opcenum_i.c中定义//创建OPC服务器的浏览器对象-----HRESULThr=CoCreateInstance(clsid,NULL,clsc
8、tx,IIDOPCServerList,(void**)&gpOPC);//查询OPCDA2.0组件目录接口指针CLSIDcatid;catid=CATID_OPCDAServer20;//=CATID_OPCDAServer20;//OPC数据访问服务器2.0组件目录IOPCEnumGUID*pEnumGUID;hr=gpOPC->EnumClassesOfCategories(1,&catid,1,&catid,(IEnumGUID**)&pEnum