為什麼在Python中調用LabVIEW DLL得到的回傳值總是為0?

更新 Aug 30, 2023

產品資訊

軟體

  • LabVIEW

程式語言

  • Python
  • LabVIEW G

問題敘述

我在LabVIEW中寫了一支很簡單的程式碼,其主要功能為加法或乘法並以Double作為回傳值,且在LabVIEW中把此VI 編譯成一個動態函示庫(DLL)並使用 Python 的 'ctype' 套件調用該VI。但我發現其回傳值始終為 0。

解決方案

回傳值為  0 是因為LabVIEW和Python之間的資料類型不匹配。調用LabVIEW DLL時,需要在LabVIEW和Python之間建立正確的資料類型 mapping。舉例來說,如果將LabVIEW程式碼中的 Double 精度更改為 Int32 (右鍵點擊> Representation > I32),則動態函示庫就能夠(DLL)正常的運作,且在Python中使用 “ ctypes” 套件呼叫此函式時不會出現任何問題。