在网上看到一段代码,是用C脚本实现在WINCC中读取系统时间。
“如何在WinCC中读取系统时间?
答: 通过如下C-Action:
#pragma code("kernel32.dll");
Void GetLocalTimes(SYSTEMTIME*lpst);
#pragma code();
SYSTEMTIME time;
GetLocalTime(&time);
SetTagWord("Varname",time.wYear);
SetTagWord("Varname",time.wMonth);
SetTagWord("Varname",time.wDayOfWeek);
SetTagWord("Varname",time.wDay);
SetTagWord("Varname",time.wHour);
SetTagWord("Varname",time.wMinute);
SetTagWord("Varname",time.wSecond);
SetTagWord("Varname",time.wMilliseconds);
”
我想在WINCC上试验一下,可以编译都不能通过,有30个错误。
提示是ILLEGAL TOKEN,还有GETLOCALTIME不能识别,是怎么回事呢?这个程序是对的吗?
问题补充:
谢谢三位的答复
1.我试验了一下,如果编译一个空项目,是没有错误的。
2.我将声明的API函数改成了VOID GetLocalTime(LPSYSTEMTIME lpSytemTime);
,还是不能成功。
另外我到网上也搜了许多类似问题,有的说是KERNEL32.DLL的路径问题,但是他又没有说明,请问是否是这种可能,该怎么改??
最佳答案
#pragma code("kernel32.dll")
VOID GetLocalTime(LPSYSTEMTIME lpSystemTime);
#pragma code()
SYSTEMTIME sysTime;
char szTime[20]="";
GetLocalTime(&sysTime);
sprintf(szTime,"%04d年%02d月%02d号 %02d:%02d:%02d",sysTime.wYear,sysTime.wMonth,sysTime.wDay,sysTime.wHour,sysTime.wMinute,sysTime.wSecond);
return szTime;
函数名多写了个“s”,你用我这个试试,在我的WINCC上验证通过的。有问题找我。
QQ:19216436
提问者对于答案的评价:
试验过了
非常感谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc277916.html