5D艺术网首页
商城
|
资讯
|
作品
|
博客
|
教程
|
论坛
登录
注册
加为好友
发短消息
来自:地球
性别:先生
最后登录:2015-09-16
http://linux.5d.cn/
俱网矣,数风流人物还看今朝!!
首页
|
新闻
|
话题
|
博客
|
相册
|
艺术作品
|
社交关系
|
留言板
|
社交圈
2004/12/22 | 用VC++开发OPC时遇到的变态类型-VARIANT!很讨厌也很可爱的~~~
类别(VC++天地)
|
评论
(0)
|
阅读(738)
|
发表于 10:28
OPC中数据项的数据类型为 VARIANT,VARIANT结构本身有具体的数据类型。VT_I2, I4, R4, R8, CY, DATE, BSTR, BOOL, UI1类型,以及这些类型组成的数组类型(VT_ARRAY),是OPC基金会希望开发者使用的(部分原因是这些类型在VB里是合法的)。但除此之外其它数据类型(VT_*)也是允许的。
一般情况下,服务器应该尽量满足针对这些类型的客户请求。(OPC DA规范允许客户程序针对数据项指定返回值类型,服务器有责任尽量为其转换)。用户也可以请求上述建议之外的类型。
一些开发商(尤其是客户程序、服务器来自于同一开发商时),往往使用以上类型之外的类型,来传递他们的专用数据,从互操作角度来讲,这种情况应尽量避免。
建议(不是必须)客户程序在处理AddItems或者ValidateItems的返回数据时,考虑处理 VT_EMPTY 类型的 native type,因为有些服务器无法在数据项刚被添加时获取其实际数据类型。
对于不能转换的请求类型,服务器应尽量合理地处理,比如先调用VariantChangeType,失败的话返回错误代码。
客户程序应该做好服务器无法接受请求类型的准备。
当客户请求数据项的原始类型时(发送VT_EMPTY),应做好服务器返回任何类型的准备。即使无法处理,也应该合理处理,释放掉内存(VariantClear)并提示用户。
0
评论
Comments
日志分类
首页
[562]
版主介绍
[6]
LINUX乐园
[2]
VC++天地
[30]
网络应用
[65]
外语沙龙
[29]
酷图欣赏
[81]
心情故事
[175]
开心灌吧
[157]
影音天地
[9]
电子乐园
[8]