NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

NI488.2をインストールして、GPIB-USB-HSを使いたいのですが...

質問がありますので、ご回答よろしくお願いいたします。

 

Windows7 64bitのPCにNI488.2をインストールして、GPIB-USB-HS経由で計測装置を動かそうとしていますが、


EXCEL2013のVBA(VBA7 64bit)から、DLL内のAPIを宣言して動作させることはできないのでしょうか。

 

ちなみに、宣言文はGPIBサンプルのVisual Basicのフォルダにあるものを流用しています(例えばのような
もの)が、

Declare Function ibdev32 Lib "gpib-32.dll" Alias "ibdev" (... )

 

"ファイルが見つかりません:gpib-32.dll"というエラーが出ます。

 

gpib-32.dllという名前のファイルを探すと、C:\Windows\SysWOW64 の下にあり、C:\Windows\System32


の下には無かったので、NI488.2 は、32bitアプリとして64bit版OSで動作させるものにた対応しているが、


64bitアプリとして64bit OSで動作させるものはないのでしょうか。

 

ちなみに、NI488.2のインストーラはweb版を使用していますが、


ni488225、ni488_312、NI4882_1500f0 あたりを試して見ましたが何れも同じ結果でした。

 

ご指導のほど、よろしくお願いします。

0 件の賞賛
メッセージ1/3
8,743件の閲覧回数

ぽよよん様

 

32bit開発環境しか持っていないものです。

gpib-32.dllって32bit環境下では、使えないと思われます。

 

グーグルでgpib-32.dll 64bitで検索するといろいろ(ほとんど英語)出てきました。

http://forums.ni.com/t5/Instrument-Control-GPIB-Serial/Error-msg-In-Windows-7-quot-Unable-to-load-DL...

 

上記はVB.NETで同じようにgpib-32.dllを使われようとして同じ症状が出たっぽいです。(英語が苦手で間違ってるかも)
クラスライブラリを使うことで解決されたと思うのですが、VBAではたしか使えないかと。

 

NI-488.2ヘルプ(バージョンは3.1.2)の「APIを選択する」で面白い内容を見つけました。

 

NI4882、GPIB32は互換性があり、GPIB32をNI4882に置き換えれば64bitでも使えるって内容でした。
100%じゃないような言い回しですが、NI-488.2ヘルプ等で調べていただいて、試してみてはいかがでしょう?
(うまく動作するか結果を教えてほしいかも)

 

+++「APIを選択する」抜粋+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
バージョン2.6以降のWindows用NI-488.2は、2つのAPI(NI4882、GPIB32)をサポートします。

新しいNI4882 APIは、アプリケーションインタフェースを使用するかDLLに直接アクセスすることによって、NI-488.2ダイナミックリンクライブラリ(DLL)ni4882.dllへのアクセスを提供します。このAPIは、32ビットおよび64ビットアプリケーションでサポートされます。NI4882 APIを使用してすべての新しいアプリケーションを記述する必要があります。

古いGPIB32 APIは、アプリケーションインタフェースを使用するかDLLに直接アクセスすることによって、NI-488.2ダイナミックリンクライブラリ(DLL)であるgpib-32.dllへのアクセスを提供します。このAPIは、32ビットアプリケーションのみでサポートされます。

このNI4882 APIでは、既存のGPIB32 APIとの一致をできる限り維持しながら、最適なAPI設計が取り入れられています。

NI4882 APIは、既存のGPIB32アプリケーションに最小限の作業量で適用できます。多くの場合、アプリケーションは、インクルードファイルをni488.hからni4882.hに変更し、リンク済みオブジェクトファイルをgpib-32.objからni4882.objに変更することにより、コンパイルすることができます。ステータス変数タイプの符号付きプロパティの変更によって、警告が発生する可能性があります。NI4882 APIでの主な変更点は以下のとおりです。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

メッセージ2/3
8,711件の閲覧回数

su-sann5073様

 

回答ありがとうございます。

 

ni4882.dllの方は、system32の下にあり、やろうとしていることができるようになりました。

 

ちなみに、あれこれ探していると、visa64.dllというライブラリがあり、こちらもVBA7 64bit版

 

から実行できるようでした。

 

ただ、APIの関数インターフェイスが違うので、gpib32向けに書いていたプログラムを書き換

 

えようとしていたところですが、ni4882.dllの存在を教えていただき、助かりました。

 

ありがとうございました。

 

0 件の賞賛
メッセージ3/3
8,679件の閲覧回数