关于Getlink的使用

#define  PropertyName   "Control Value"

LINKINFO  linkinfo

GetLink(lpszPictureName, lpszObjectName, PropertyName, &linkinfo); 
if ( strlen(linkinfo.szLinkName) > 0 )
 SetTagWord(linkinfo.szLinkName, (WORD) value);
else
 SetPropDouble(lpszPictureName, lpszObjectName, PropertyName, value);
请教这段程序的意义。

问题补充:
为什么要声明#define  PropertyName   "Control Value",而不是直接写作GetLink(lpszPictureName, lpszObjectName, “control value”, &linkinfo)呢?

最佳答案

GetLink的功能是获取某个画面中指定对象其属性的动态连接特性。
连接属性包括动态连接类型、更新方式及连接的变量名称。
函数原型如下:
BOOL GetLink(
LPCTSTR lpszPictureName,   //画面名称
LPCTSTR lpszObjectName,   //对象名称
LPCTSTR lpszPropertyName,   //属性名称
LPLINKINFO *pLink);       //连接特性结构指针
其中,LINKINFO是结构体。定义如下:
typedef struct {
LINKTYPE LinkType;
DWORD dwCycle;
TCHAR szLinkName[256];
}LINKINFO;
说明:
LinkType:连接类型, 
dwCycle:更新方式
 szLinkName[256]:变量名称
程序的意思参见 youhm的回答。
define是C语言中的预处理命令,可以提高源代码的可读性。详细的需要查一下C语言的资料了。
在WinCC的帮助中搜索“WinCC 编码规则” 能查到一些信息。

提问者对于答案的评价:
谢谢指教

专家置评

已阅,最佳答案正确。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc221701.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年12月9日 下午11:42
下一篇 2017年12月9日 下午11:42

相关推荐