LabVIEW 調用外部 DLL


前言:
        為了在LabVIEW中能夠調用其他語言編寫的程序,其提供了強大的外部程序接口能力,這些接口包括DLL、C語言接口(CIN)、 ActiveX、NET. DDE、MATLAB等。通過DLL,用戶能夠方便地調用C、VC、VB等編程語言編寫的程序。因此,本章通過示例來學習如何調用外部dll。動態鏈接庫(Dynamic Link Library,DLL)是一個可以多方共享的程序模塊,內部對共享的例程和資源進行了封裝。動態鏈接庫文件的擴展名一般是.dll,DLL 和可執行文件(EXE)非常類似,最大的區別在於DLL雖然包含了可執行代碼卻不能單獨執行, 必須由Windows應用程序直接或間接調用。

 

一、示例1
       本節我們通過調用外部鏈接庫的方式,來實現:輸入一個 Double 型數組數組及其長度,輸出一個整型數組。該整型數組中每個元素對應輸入數組中每個元素求平方后的基數。

1.1 生成DLL文件
     首先我們在VS2015中新建一個項目,寫入算法代碼並生成目標DLL文件,生成DLL文件有兩種方法:

  (1)方法一:

新建一個win32項目:

在應用程序向導中將應用程序類型選擇為DLL:

在源文件中的ArrayFloor1d中編寫代碼:

在項目中添加一個新項:

選擇添加一個模塊定義文件:

在模塊定義文件寫入:

選擇重新生成解決方案,就可以在項目文件中得到DLL文件:

(2)方法二:

新建一個win32項目:

在應用程序向導中將應用程序類型選擇為DLL:

在ArrayFloor1d中直接寫入如下代碼,無需在新建模塊定義文件:

重新生成解決方案,即可在項目文件中找到DLL文件:

1.2  編寫LabVIEW程序

在前面板上編寫程序:

通過外部編譯器(例如Visual C++)將代碼編譯為動態鏈接庫DLL文件后,在調用庫函數對話框中指定該動態鏈接庫的地址,選擇函數名:

線程設置可以任意,調用規范必須設置為C。

在參數頁中設置函數返回值類型為Void,添加input參數為 —維雙精度浮點型數組,數組格式為數組數據指針。添加input length為整型傳值參數, 添加output參數為一維32位整型數組,如下所示:

配置好參數后,就需要要添加輸入輸出,由於Output用於得到函數汁算結果,因此輸入時只需要輸入一個常數初始化數組即可。

運行程序,可以在前面板看到:

二、學以致用

本節我們通過仿真信號函數來產生一個帶白噪聲的正弦信號,然后調用C語言寫的一階簡單低通濾波算法來處理該信號。首先仿真信號函數在函數面板中的位置為:

我們在VS2015中新建一個項目,編寫一階簡單低通濾波算法的代碼:

然后生成目標DLL文件:

然后在labVIEW中新建一個空白 VI,編寫如下代碼:

然后在調用庫函數對話框進行參數的配置:

這里需要格外注意:我在C語言的程序中對形參使用了double,int,float等類型的數據類型:

它們在labVIEW中有對應的數據類型:

這個數據類型一定要配置正確,否則程序就會出錯。

配置完成以后,我們就可以運行程序,在前面板觀察:

 

 

 


免責聲明!

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



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