天天看點

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項目:

LabVIEW學習筆記(九)——調用外部DLL

在應用程式向導中将應用程式類型選擇為DLL:

LabVIEW學習筆記(九)——調用外部DLL

在源檔案中的ArrayFloor1d中編寫代碼:

LabVIEW學習筆記(九)——調用外部DLL

  在項目中添加一個新項:

LabVIEW學習筆記(九)——調用外部DLL

    選擇添加一個子產品定義檔案:

LabVIEW學習筆記(九)——調用外部DLL

在子產品定義檔案寫入:

LabVIEW學習筆記(九)——調用外部DLL

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

LabVIEW學習筆記(九)——調用外部DLL

(2)方法二:

建立一個win32項目:

LabVIEW學習筆記(九)——調用外部DLL

在應用程式向導中将應用程式類型選擇為DLL:

LabVIEW學習筆記(九)——調用外部DLL

    在ArrayFloor1d中直接寫入如下代碼,無需在建立子產品定義檔案:

LabVIEW學習筆記(九)——調用外部DLL

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

LabVIEW學習筆記(九)——調用外部DLL

1.2  編寫LabVIEW程式

在前面闆上編寫程式:

LabVIEW學習筆記(九)——調用外部DLL

        通過外部編譯器(例如Visual C++)将代碼編譯為動态連結庫DLL檔案後,在調用庫函數對話框中指定該動态連結庫的位址,選擇函數名:

LabVIEW學習筆記(九)——調用外部DLL

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

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

LabVIEW學習筆記(九)——調用外部DLL
LabVIEW學習筆記(九)——調用外部DLL
LabVIEW學習筆記(九)——調用外部DLL

        配置好參數後,就需要要添加輸入輸出,由于Output用于得到函數汁算結果,是以輸入時隻需要輸入一個常數初始化數組即可。

       運作程式,可以在前面闆看到:

LabVIEW學習筆記(九)——調用外部DLL

二、學以緻用

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

LabVIEW學習筆記(九)——調用外部DLL

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

LabVIEW學習筆記(九)——調用外部DLL

然後生成目标DLL檔案:

LabVIEW學習筆記(九)——調用外部DLL

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

LabVIEW學習筆記(九)——調用外部DLL

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

LabVIEW學習筆記(九)——調用外部DLL
LabVIEW學習筆記(九)——調用外部DLL
LabVIEW學習筆記(九)——調用外部DLL
LabVIEW學習筆記(九)——調用外部DLL
LabVIEW學習筆記(九)——調用外部DLL

這裡需要格外注意:我在C語言的程式中對形參使用了double,int,float等類型的資料類型:

LabVIEW學習筆記(九)——調用外部DLL

它們在labVIEW中有對應的資料類型:

LabVIEW學習筆記(九)——調用外部DLL

這個資料類型一定要配置正确,否則程式就會出錯。

配置完成以後,我們就可以運作程式,在前面闆觀察:

LabVIEW學習筆記(九)——調用外部DLL

繼續閱讀