用 Call Library Function Node 呼叫回傳值為指標的函式

更新 Aug 18, 2023

環境

軟體

  • LabVIEW

在 LabVIEW VI 中,我想用Call Library Function Node從 C 語言 DLL 呼叫一個函式。標頭檔顯示該函式回傳一個 “unsigned char” 類型的指標。當我在Call Library Function 設定對話框的 Parameters 分頁中設定回傳參數的資料類型時,這資料類型無法用。想請問在這種情況下我應該設定什麼資料類型才能正常運行呢?

在這種情況下,請使用以下設置:
  1. 雙擊 Call Library Function Node 顯示Call Library Function configuration dialog
  2. 在 Parameters 分頁上,點擊參數清單中的 return type (回傳類型)
  3.  Type 設為 Numeric。
  4.  Data type 設為 Signed Pointer-sized Integer。

附加資訊

有關在 C/C++ DLL 和 LabVIEW 之間傳遞和接收指標的更多資訊,請參閱社群範例:  Passing and Receiving Pointers with C/C++ DLLs from LabVIEW - Developer Center Resources
dereferencing (解引用)一詞描述了訪問指標所引用的資料的過程。您可以使用 LabVIEW 的記憶體管理器函式MoveBlock直接在您的 LabVIEW VI 中 dereference 出資料。有關更多資訊,請參閱Dereferencing Pointers from C/C++ DLLs in LabVIEW - Developer Center Resources