wincc C腳本如何調用第三方動態連接庫dll

 

就Wincc自己腳本功能而言並不強大,可是wincc 腳本提供了第三方接口,如通用的Kernel32.dll,User32.dll,Gdi32.dll,你們若是對這些API接口感興趣,可網上查找關於windows API接口函數的介紹;windows

同時對於第三方包括自定義的dll文件,均可調用;但這裏值得強調的是因爲生成dll的語言環境不一樣,並不表示全部類型的dll均可在C腳本中調用;本文介紹的第三方自定義的dll是由C,C++來生成的文件,並完成調用過程;函數

1.本文利用visual studio 2012 內置的 visual C++語言平臺生成dll文件,具體如何生成,可參考文章:https://blog.csdn.net/zhunju0089/article/details/80906501.net

本文經過C生成了dll文件只包括了一個返回整星數據的加法函數sum,以下:code

 

所生成的 dll名稱爲:Win32Project1.dll;blog

2.在wincc C腳本中調用:接口

添加畫面-添加診斷窗口-添加按鈕-生成C腳本事件-代碼以下:事件

#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
// WINCC:TAGNAME_SECTION_ENDstring



#pragma code("c:\mydll\Win32Project1.dll")
int add(int a,int b);
#pragma code()
int mystring;
mystring=add(8,6);
printf("the string is %d",mystring);
// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END
}io

 運行程序後效果以下:程序

 

 至此結束!

說明:在生成dll過程當中出現了一些問題,最初在生成過程當中使用頭文件.h,庫文件.lib和.dll共同來完成,但發如今實際應用過程當中C腳本沒法檢測,感興趣的同窗能夠嘗試一下使用此種方式是否可行。

相關文章
相關標籤/搜索