從 LabWindows™/CVI 或其他 C 專案中呼叫 LabVIEW DLL

更新 Jun 15, 2023

環境

軟體

  • LabVIEW Full
  • LabVIEW Base

我在 LabVIEW 中編譯了一個動態連結函式庫 (DLL),但我不知道如何從 LabWindows™/CVI、Visual C/C++ 或其他 Windows 開發環境中呼叫它。
請問如何在 LabWindows/CVI 或其他 C 專案中呼叫用 LabVIEW built 的 DLL呢?

當您在 LabVIEW 中成功 build DLL 後,會產生三個檔案:.DLL 檔、.LIB 檔 和 .H 檔。
.DLL 檔內有您在 LabVIEW 中所開發的功能。
.LIB 檔稱為導入庫,包含用於載入和呼叫 DLL 函式的 stub。
.H 檔或標頭檔內有一個函式原型,用於呼叫LIB 檔中包含的函式,最終呼叫 DLL。

要在一個開發環境中使用編譯好的DLL,您可以直接使用 Windows SDK 中的 LoadLibrary() 和 GetProcAddress() 函式呼叫 DLL,或者您可以將您的專案與 LIB 檔和 H 檔連結起來,這樣就好像它已經在您的專案中一樣,可以直接呼叫該函式。在這種情況下,您需要確認 DLL 位於與呼叫者在相同的資料夾中,並且它位於 CVI 專案的Resource Files 資料夾中(如果該資料夾不存在,請建立該資料夾)。

以下為在 LabWindows/CVI 中操作的步驟,示範直接呼叫在 LabVIEW 中建立的 DLL:
  1. 點選 Edit > Add Files to Project... > Include (.h)... or Library(.lib)... 將 .lib 和 .h 檔案增加到專案中
  2. 在您希望呼叫 DLL 的檔案的最上面,使用 #include 預處理器指令 include .H 檔。
  3. 在 C:\Program Files(x86)\National Instruments\LabVIEW\cintools 子目錄中 include 其他 LabVIEW .H 檔案,如 extcode.h、fundtypes.h 和 platdefines.h。前面的標頭檔定義了 LabVIEW 使用的某些類型,有時會根據您的 DLL 傳入和傳出 LabVIEW 程式碼。如果開發機器上沒有安裝 LabVIEW,您需要將這些 .H 檔案從 cintools 資料夾複製到開發電腦上可以找到它們的位置。
  1. 按照標頭檔中指定的名稱和參數呼叫函式。

附加資訊

LabVIEW Run-Time Engine 包含了要在另一台電腦上使用所build 出的 dll 所需的 LabVIEW 支援函式,所以執行 LabVIEW built 出的 DLL 時需要安裝適當版本的LabVIEW RTE。