LabVIEW創建DLL的方法

為了方便大家的學習,下面YJBYS小編為大家整理了關於LabVIEW創建DLL的方法,希望對你有所幫助。

LabVIEW創建DLL的方法

1、LabVIEW也可以創建DLL

  2、調用規範説明:

C調用規範時,調用方負責清空堆棧。使用標準調用規範時,被調用函數負責清空堆棧。

所以要確認您選擇了和DLL相同的調用規範

  3、調用庫函數節點(CLF)中線程模式:

在UI線程中運行(Run in UIThread )模式;在任意線程中運行(Reentrant)模式。

Runin UI Thread 表示在用户界面線程中調用,DLL 的執行期將等到用户界面線程執行DLL的導出函數調用時才開始;Reentrant 表示允許多個線程同時調用這個DLL 。

  4、線程模式的選擇原則:

如果DLL 為線程安全———簡單地説,就是編制DLL過程中,充分考慮了線程保護的同步機制,如使用臨界區、互斥、信號量等,那麼可以選用Reentrant 方式,這將有助於提高DLL調用的性能;如果你不確定DLL 是否為線程安全,選Run in UI Thread。

  5、以下是LabVIEW Help中有關線程模式選擇原則的説明:

線程——控制“調用庫函數節點”繼續在VI當前執行的線程執行或轉向用户界面線程。默認狀態為在UI線程中運行。

在UI線程中運行——指定“調用庫函數節點”必須在用户界面線程中運行。LabVIEW生成的共享庫在UI線程中運行時,如通過在程序框圖中指定路徑動態加載該共享庫,可導致LabVIEW掛起。

在任意線程中運行——指定“調用庫函數節點”繼續在VI當前執行的線程上運行。必須確保多個線程可同時調用函數。

注:對LabVIEW生成的.共享庫的調用必須指定為在任意線程中運行。如配置“調用庫函數節點”調用LabVIEW生成的共享庫並指定在UI線程中運行,LabVIEW將可能掛起並請求重新啟動系統。

6、綜上所述:LabVIEWDLL具有足夠的可以讓多個線程調用的安全性。可以放心的以“在任意線程中運行”模式運行LabVIEW。如果以“在UI線程中運行”模式運行,如果動態加載DLL路徑會導致程序掛起。

7、Labview編寫的dll還有一個優點:調用時不需要為輸入參數的類型發愁,他是自動加載。