发布于 2011-07-29 08:49:20
2楼
OPC 技术文档之 OPCENUM.EXE 使用方法(vc) (转)
在制作OPC Client 的程序的时候,常常需要浏览目标服务器的所有OPC Server
方法有两个:
一是通过 IOPCAutoServer 的GetOPCServers方法得到 二是通过 OPCEnum.exe 提供的 IOPCServerList 接口的 EnumClassesOfCategories
方法实现。
1.导出 opcenum.exe 服务的 IDL 文件
1) 打开系统程序:oleview.exe
2) 找到"Type Libraries\OpcEnum 1.1 Type Library(Ver 1.1)",1.0也可以
3) 点击菜单里的"Object\View..."
4) 在打开的"ITypeLib Viewer"里点击菜单的"File\Save As..."保存成一个IDL文件
5) 以命令行方式来到保存IDL文件的目录
6) 输入"midl /h ***x.h ***x.idl" ***x.h是要生成的com接口头文件 ***x.idl就是
那个idl文件,midl会自动生成一个叫***_i.c的文件
2.写程序
1) 打开VC++ 6.0
2) 加入文件***x.h和***_i.c
3) 写初始化,调用CoInitialize...,允许访问com内存管理器
4) 写创建 OPC.ServerList.1 对象代码,注意如果是远程机器要使用
CoCreateInstanceEx ,CLSCTX_REMOTE_SERVER ,在Setting里要加上 _WIN32_DCOM
5) 实现 IOPCServerList 接口
5) 最后调用 EnumClassesOfCategories
其中第一个参数为 1 ,第二个参数为组件类目录,即 oleview 里的
Grouped by Component Category\OPC Data Access Servers Version x.0