关于opcclient端一些接口的实现和多线程的opcclient端的实现的几个问题 点击:2379 | 回复:4



crazygod

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 15回
  • 年度积分:0
  • 历史总积分:30
  • 注册:2002年8月12日
发表于:2003-04-08 15:51:00
楼主
各位OPCor: 偶在开发opcclent的时候,对于OPC1.0和OPC2.0中要求在opcclient端实现的IAdviseSink与IOPCDataCallback的区别不是特别理解,从偶能得到的一些source来看,即使是基于OPC2.0版本开发的opccliet,对于这部分依然用的是IAdviseSink来实现的,好像很少看见有用IOPCDataCallback来实现。当然偶指的是这两个接口都具有的OnDataChange部分。 另外如果想连接不同的opcserver,在连接opcserver时在线程中使用CoInitializeEx建立连接,使用CoInitialCoUninitialize()断开连接,这样的使用是否正确,否则如果不使用多线程是如何实现与多个opcserver进行连接,并且能够分别释放与opcserver的连接的? 不知哪位了解的OPCor能够给偶一些帮助,谢谢! 再次感谢!



gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-04-01 22:41:00
1楼
兴趣

jack_chen

  • 精华:1帖
  • 求助:0帖
  • 帖子:3帖 | 7回
  • 年度积分:0
  • 历史总积分:72
  • 注册:2003年3月05日
发表于:2003-04-03 16:01:00
2楼
1.我比较喜欢用IOPCDataCallback,因为它比较新啊,另外还多了几个回调函数,虽然没用到。 2.CoInitializeEx以及CoCoUninitialize是用来初始化COM库的,不是与建立连接,因此你要在全局调用他们,不要放在线程函数里。

jack_chen

  • 精华:1帖
  • 求助:0帖
  • 帖子:3帖 | 7回
  • 年度积分:0
  • 历史总积分:72
  • 注册:2003年3月05日
发表于:2003-04-03 16:12:00
3楼
另外,你提到的与opc建立连接是通过CreateInstance来创建opc server 接口对象,断开连接时销毁该对象即可。

crazygod

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 15回
  • 年度积分:0
  • 历史总积分:30
  • 注册:2002年8月12日
发表于:2003-04-08 15:51:00
4楼
谢谢!我已经做过相应的测试了,效果不错。

热门招聘
相关主题

官方公众号

智造工程师