From 08:00 PM CDT Friday, August 12 - 01:00 PM CDT Saturday, August 13, ni.com will be undergoing system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



使用 Call Library Function Node 呼叫會回傳空白字元(Null Character)的 DLL 函式



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

問題: 我的 Call Library Function Node 呼叫 DLL 函式時無法回傳完整的字串

解答: 讓 DLL 函式回傳包含空字元的字串是可行的。要做到這點,這個字串必須被設定為
數字的位元組陣列〈array of byte〉。以下的步驟是完成這個設定的方法之一:

1.  使用 Initialize Array VI 初始化一個陣列。將一個長度為 U8 的數字常數連結到
     Initialize Array 的 element 輸入;同時將 dimension size 設定大於或等於回傳
     字串中字元的數目。

2.  將這個初始化的陣列設定為 Call Library Function Node 的輸入參數。

3.  使用 Byte Array to String VI 將 Call Library Function Node 的位元組陣列〈
     array of byte〉的輸出轉換為字串。

以下附上兩個範例程式。這兩個 VI 都呼叫了 nationalinstruments.dll;而這個 DLL
回傳一個包含 14 個字元的字串 "Labview/0Rocks/0",其中 /0 是在兩個字中宇與字
串結束時的空白字元。第一個範例〈InvalidDLLReadNullBytes.vi〉沒有初始化位元
組陣列的資料型態因此沒有成功讀回回傳的字串;而第二個範例 〈IValidDLLReadNullBytes.vi
按照以上的步驟從 dll 中回傳完整的字串。

相關連結:

附加檔案:


nationalinstruments.dll - nationalinstruments.dllValidDLLReadNullBytes.vi - ValidDLLReadNullBytes.vi
ATTPIRGZ - ATTPIRGZ
InvalidDLLReadNullBytes.vi - InvalidDLLReadNullBytes.vi
ATTKV7FL - ATTKV7FL



報告日期: 06/14/2004
最後更新: 07/10/2007
文件偏號: 3AD7S2XR