如果為Reserve選擇了一個回調函數,那么當一個新的線程開始調用這個DLL時,這個回調函數首先被調用。可以利用這個函數為新線程使用到的數據做初始化工作。線程在使用完這個DLL之后,它會去調用Unreserve中指定的回調函數。Abort中指定的函數用于VI非正常結束時被調用,也就是讓一個程序在運行完前停止。這些回調函數的原型在Prototype for these procedures中列出,必須要由DLL的開發者按照特定的格式實現。如果使用的DLL不是專為LabVIEW設計的,一般不會包含這樣的回調函數。
如果C語言的struct中含有一個指針,LabVIEW中的cluster只能用一個U32數值(32位系統上,64位系統上使用U64)來表示指針的地址,而不能將指針所指向的內容放到Cluster中去。如果聲明的是指向struct的指針,才能在LabVIEW中使用cluster與之對應。CLN節點的配置面板中,沒有一個專門命名的“struct”或者“cluster”參數類型,應選擇“Adapt to Type”就可以了。如果參數的類型就是結構而非指針,考慮到C函數參數的壓棧順序,把一個結構體作為參數傳給函數,相當于把結構中每個元素分別作為參數傳遞給函數。圖6為C語言中struct和LabVIEW中cluster的部分匹配圖。