用C语言写OPC客户程序 点击:2126 | 回复:3



bingfeng

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 14回
  • 年度积分:0
  • 历史总积分:124
  • 注册:2005年9月12日
发表于:2006-05-02 13:53:00
楼主
 [求助]用C语言写OPC客户程序

最近想用c语言写opc客户程序,感觉理论上应该能够实现

但是,现在存在下面几个问题
1.看到的很多c++的例子都是基于类而写的,所以一些代码
m_IOPCServer->AddGroup(),
m_IOPCServer->Release()等等 
怎么在c语言中实现呢?
2.写OPC客户端程序,感觉不涉及到COM的问题,对么?
3.还有想向大家请教,我做这个的目的是因为想让另外一个软件实现opc功能,那个软件支持c生成的dll,但是不支持c++生成的dll,所以可不可以通过其他办法,把c++写的opc程序,产生一个c接口?就如extern "c"之类的,可以么?
4.希望大家能够给出一些用c语言写的opc客户端的例子,以参考

谢谢大家
 
我的email:pengzhe1113@gmail.com
qq:282468222
希望大家多多交流



daisyleng

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 7回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2001年4月23日
发表于:2006-07-12 19:02:00
1楼
好像比较难的? 

plink

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 24回
  • 年度积分:0
  • 历史总积分:40
  • 注册:2002年2月26日
发表于:2006-07-13 10:12:00
2楼
to bingfeng 
你的问题,发表如下个人看法:

1、c语言实现opc理论上没有问题,本人没有实际做过,但也可以明确这一点。
2、写OPC客户端程序,当然涉及com,除非你采用了别人的某些代码框架,涉及com的部分被那些代码实现。
3、dll一旦编译成影像文件,其实这时候已经无所谓c还是c++了,标准的dll接口可以被任何支持dll的软件所调用。所谓不支持c++生成的dll,是因为某些c++开发工具生成的dll并非普通的标准接口,这时候的dll仅仅是为该c++开发工具生成.exe所调用的。
其实,c++和c产生dll的不同,是因为名字解析的原因,两种编译器名字解析采用不同的名字解析,不同的c++编译器名字解析也不同。
4、把c++写的opc程序,产生一个c接口?就如extern "c"之类的,可以么?
这个问题答案是确定的,可以,道理前面几点已经包含
5、多说一点,opc基于com,com就是基于dll技术的一套接口标准。实现可以是自由的,但是如果研究道理,可以类比c++纯虚函数的定址方式。


本团队开发的plink协议网关,支持多通道多协议的采集和转发,跨平台(windows和linux,以及moxa uc嵌入式平台),为了丰富协议库,为任何提供有代表意义设备协议的公司和个人免费定制协议。为图形界面厂商和设备厂商提供开发服务。索取windows版demo和了解详情请加qq438923036

deng_lp

  • 精华:5帖
  • 求助:0帖
  • 帖子:65帖 | 2669回
  • 年度积分:0
  • 历史总积分:2876
  • 注册:2001年6月19日
发表于:2006-07-14 08:22:00
3楼
先写成C++的API动态库,再用C去调用封装好的动态库。

热门招聘
相关主题

官方公众号

智造工程师