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


 

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

同時對於第三方包括自定義的dll文件,都可調用;但這里值得強調的是由於生成dll的語言環境不同,並不表示所有類型的dll都可在C腳本中調用;本文介紹的第三方自定義的dll是由C,C++來生成的文件,並完成調用過程;

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

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

 

所生成的 dll名稱為:Win32Project1.dll;

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_END



#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
}

 運行程序后效果如下:

 

 至此結束!

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM