當前位置:才華齋>IT認證>EDA技術>

LabVIEW建立DLL的方法

EDA技術 閱讀(1.72W)

為了方便大家的學習,下面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還有一個優點:呼叫時不需要為輸入引數的型別發愁,他是自動載入。