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