blochの日記

自虐ネタ以外のぐちは書かないようにしましょう

もうちょい肉体頭脳労働

始発の新幹線で帰って来て1限を終えて朦朧としているので、三時半のミーティングまでvisaの使い方のメモを続けることにした。次の関数は、timeoutを設定するもので、VBの例では、
stat = viSetAttribute(sesn, VI_ATTR_TMO_VALUE, 5000)
である。第一引数sesnは、viopenでポインタ渡しで取ってきた最後の引数sesn:longwordを使う。
長い変数VI_ATTR_TMO_VALUEは、VI_NULLと同様、visa.hで定義されていて、
#define VI_ATTR_TMO_VALUE (0x3FFF001AUL)
である。こいつら全部、Delphiに取り込むかと思うと頭がクラクラする。しかしやるしかない。
さらに、このVI_ATTR_TMO_VALUEは、タイムアウトの値そのものではなく、タイムアウトの設定を指定する番号である。実際のタイムアウト値は、三番目の引数5000ミリ秒である。
この関数は、全ての引数が値渡しである。戻し値stat:longは、
stat < VI_SUCCESS
の場合にエラーが起きたことを表わす。
但し、
#define VI_SUCCESS (0L)
である。確かに、statはlongwordでなく、longでなければならぬ。