blochの日記

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

visa32.dllのオープン

VISAを使うには、取りあえず、visa32.dllをオープンしないことには始まらない。以前、GPIBのドライバルーチンを書いたときには、
Gpib32Lib := LoadLibrary('GPIB-32.DLL');
でNIのDLLを読み込んだものだ。当時の自作ソースには、例えば、Gpib32Lib: THandle;と定義されていて、そんな風な変数・変数の型の定義が百行以上あって、今見ても目がくらくらする。
またあの悪夢を繰り返さねばならないのか、、、。visaの使い方のマニュアルはここや、ここ、そしてアジレントなどが詳しいが、いずれも、VBで書くときは変数の定義ファイルvisa32.basを読み込め、としている。ところが肝心のvisa32.basがどこを見ても見つからないのだ。
NI-VISA™ User Manual(A1)に、visa32.dllをloadした後の最初の一歩が載っていて、

  • rem Begin by initializing the system
  • stat = viOpenDefaultRM(dfltRM)

となっているのだが、左辺のstatの型はViStatus、右辺の引数dfltRMの型はViSessionであり、これがvisa.32にしか載っておらず、そしてvisa32.basが見つからないのだ。