從CVI或其他C/C++專案呼叫LabVIEW DLL



主要軟體:
主要軟體版本: 7.0
主要軟體修正版本: N/A
次要軟體: N/A

問題: 我以LabVIEW編譯了一個DLL檔,我該如何從CVI, Visual C/C++ 或其他開發環境去呼叫LabVIEW DLL?

解答:


在您於LabVIEW中建立DLL時會產生三個檔案:.DLL檔,.LIB檔及.H檔(C/C++ header file)。DLL檔裡頭會有您在LabVIEW中所設計的函式,LIB檔含有供讀取呼叫DLL函式時所需的stub,至於H檔含有供呼叫LIB檔中函式所需使用的function prototype。

  

在別的環境中使用其程式碼,你可以直接以Windows SDK中的LoadLibrary()和GetProcAddress()函式來直接呼叫DLL,或您也可以將你的project與LIB檔和標頭檔(header file)連結在一起,如此您就可以輕易的以原本的函式名稱去呼叫函式,就像是這些函式已存在您的project裡頭。對大部分的初學者後者會是比較簡單且推薦的方式。您可透過下列步驟完成:

  1. 使用#include前處理指令在程式開始的地方加入您的H檔。
  2. 以header檔中定義的函式名稱與參數來呼叫函式。
  3. 加入LIB檔到您的C/C++ project中。



  4. 指示您的編譯器在C:\Program Files\National Instruments\LabVIEW\cintools目錄中找到其他像是extcode.h,fundtypes.h,和platdefines.h的LabVIEW .h檔。這些檔案定義了某些您撰寫的DLL用來傳遞資料的LabVIEW資料型態。你必須將這些.h檔自cintools目錄複製到開發程式的電腦以確保能找到它們。


  5. 指示您利用LabVIEW所建立的LIB檔資料夾連結位置。於Configuration Properties»Linker»General 內,Additional Library Directories加入LIB檔資料夾。


  6. 指定您的LabVIEW DLL延遲載入(若開發於MFC應用)。於Configuration Properties»Linker»Input,將DLL加入Delay Loaded DLLs。

 


注意:LabVIEW Runtime Engine會加入任何在別的電腦上執行LabVIEW建立的程式碼所需的支援函式(supporting functions)。必須伴隨適當的runtime engine版本才可以執行DLL檔。

相關連結:

KnowledgeBase 28185EQO: LabVIEW Run-Time Engine Requirments for DLL Execution
KnowledgeBase 2EIBT1Y1: How Can I Access DLL Functions in a LabWindows/CVI Program Without Including the Import Library in the Project?



附加檔案:





報告日期: 11/04/2003
最後更新: 12/15/2012
文件偏號: 3337DOV4