07-18-2014 03:30 AM
VB.Net 2010/2012にてGPIBを使用したアプリケーションを開発しようとしています。
制作しているアプリケーションで制御するデバイスが複数のインターフェイス(GPIB/RS232C)を持っているため、状況によってはGPIBのライブラリーがインストールしていない状況でも動作する必要があります。
VB6.0で制作していた時は、GPIB-32.DLLの適当な関数をコールしてエラー処理でGPIBの有り無しを判断できましたが、VB.NET用のサンプルではGPIBライブラリー(National Instruments 488.2)をあらかじめ参照登録
しているため、GPIBライブラリーのインストールされていない環境では実行できません。
そこで、National Instruments 488.2を遅延バインディングできれば問題ないのではと考えております。このような使用方法は可能でしょうか?
また、VB6.0の移行をしやすくするために、GPIB-32.DLLを直接コールするようなサンプルはありますか?
解決済! 解決策の投稿を見る。
07-30-2014 10:07 AM
むささ様
お時間経っておりますが、本件いかがでしょうか。
お調べいたしましたが、gpib-32.dllを呼び出すサンプルはございませんでした。
一般的なdll呼び出しは使えませんでしょうか。
質問に質問する形となってしまいますが、
遅延バインディングに関しての知識がないのですが、何か良い資料などございますでしょうか。
ご教授ください。
以上です。
07-31-2014 02:50 AM
woozyshigezo様
回答ありがとうございます。
とりあえず、GPIBライブラリー(National Instruments 488.2)を普通に使用してアプリケーションの開発を進めています。
gpib-32.dllを直接呼び出すことに関しては、まだ試していませんが、時間をかければできると思います。
サンプルについて質問したのは、時間の節約もありますが、あまり非公式なやり方をしたくないと考えているからです。
作成したgpib-32.dllを直接呼び出すソフトが今後も互換性が保障されるのであれば、gpib-32.dllを使用したいと考えています。
遅延バインディングはMS Excelを使用したアプリを開発する場合によく使われているようです。
事前バインディング と遅延バインディングについて説明されたページです。
http://support.microsoft.com/kb/304661/ja
01-20-2015 08:05 AM
かなり時間が空いてしまいましたが、VB.net用のGPIB-32.DLLを使用したサンプルを見つけたので試してみました。
VB NET 2003 Simple GPIB using GPIB-32.DLL
http://www.ni.com/example/29525/en/
ほぼ問題なく移植できましたが、ibrdi()とibrdia()の関数に関してはうまく動作せず、バイナリイーデータの受け取り時に
問題があり、最終的にはibrdf()関数で一旦ファイルに保存して受け取り解決しました。
当初の目的は達成できていませんが、遅延バインディング、GPIB-32.DLLの公式なサポート共に得られそうにないので
これでスレッドを終了します。