將 LabVIEW String 轉換成 Character Array 並傳 Pointer 到 Call Libery Function Node



主要軟體:
主要軟體版本: 8.0
主要軟體修正版本:
次要軟體: LabVIEW Development Systems>>LabVIEW Full Development System

問題:

我想要用 LabVIEW 的 Call Library Function Node 來連接 DLL。我需要傳一個 string,但型態需要一個參數是個 pointer 指向 character array。我要怎麼從 string 創造 character array 並傳 pointer 給 DLL?



解答:

LabVIEW string 不是 null-terminated C-style string。LabVIEW string 類似 Pascal-style string,前四個 byte 代表了 string 的長度。

有兩個方法來讓 LabVIEW string 傳給 DLL 表示為 char *(pointer to character array)。最常用的方法是定義 function 參數為 CStr. 當你擺放 Call Library Function Node 到 block diagram 上時,點選兩下來界定你要呼叫的 function 的型態。在這裡你會規範參數為 String 並且格式為 C String Pointer。注意該資料的型態表示為 CStr,等同於 char *。

如果你在做文字型態的儀器控制,可能傳一個 8-bit integer 會比 C string 來的簡單的多,因為在 string 裡可能會有 NULL。當你擺放 Call Library Function Node 到 block diagram 上時,點選兩下來界定你要呼叫的 function 的型態。這裡的重點就是規範參數型態為 Array 並且資料型態為 Signed 8-bit integer。Array 維數為 1 而格式是 Array Data Pointer。在 LabVIEW 裡你必須用 String to Byte Array.vi 來將 string 轉換成 byte array。

Call Libaray Function Node 的輸出會是修改過的 Character array,需要被轉換回 String。

完整的有關如何使用 LabVIEW 搭配其他程式語言文件,LabVIEW 7.1 或之前的版本請參考 Using External Code in LabVIEW manual (下有連結)。LabVIEW 8.0 或以上的版本,請參考 LabVIEW Help 裡的 Fundamentals»Calling Code Written in Text-Based Programming Languages。



相關連結:

附加檔案:


LV_CStr.GIF - LV_CStr.GIFLabVIEW String.GIF - LabVIEW String.GIF
LV_CharArray.GIF - LV_CharArray.GIF
CLFN_CStr.GIF - CLFN_CStr.GIFCLFN_CharArray.GIF - CLFN_CharArray.GIF



報告日期: 05/11/2006
最後更新: 04/22/2009
文件偏號: 3XAAHO7E