NI製品ディスカッション

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

VB6をLabVIEWから呼び出す方法・サンプルVI

LabVIEW8.2でプログラムを作成していますが、LabVIEWからVB6のプログラムを呼び出して計算させ、LabVIEWに戻って計算結果を表示させるにはどのようにVB6でプログラムを作って、どのようにLabVIEWから呼び出せばよいか教えてください。
日本語のサンプルVI、プログラムがあるとうれしいのですが。
検索すると英語や中国語でのやり取りはあるようなのですが、外国語は苦手なもので、よく分かりませんでした。
0 件の賞賛
メッセージ1/6
6,439件の閲覧回数
Nagasaka 様

平素は弊社製品をご利用頂きまして誠に有難うございます。
日本ナショナルインスツルメンツ 技術部の岩見と申します。
返信が遅くなってしまい、申し訳ございません。

LabVIEWからは VisualBasic の ActiveX DLL を呼び出すことが可能です。以下のリンクに詳細がございます。

なぜ、Call Library Functionを使用し、Visual Basicで作成されたDLLを呼ぼうとすると、うまく機能しないのですか?
http://ae.natinst.com/operations/ae/public.nsf/web/searchinternal/7c6b4100bc57c57686256e3500491ed0?OpenDocument

VisualBasic で ActiveX DLL を作成する方法については VisualBasic のユーザーマニュアルをご参照ください。

また、英語になってしまい申し訳ございませんが、以下のサンプルフォルダ内の sharing_code\LV\Call Visual Basic dll.vi にて
具体的なプログラム構成をご確認いただけます。
このVI内の、イベントストラクチャの Generate のケース内で VisualBasic の関数が呼び出されております。

Sharing Code with Visual Basic
http://zone.ni.com/devzone/cda/epd/p/id/2714

一度これらをご確認いただいて、ご不明な点がございましたらご連絡いただけますでしょうか。
お手数ですがよろしくお願い申し上げます。
0 件の賞賛
メッセージ2/6
6,410件の閲覧回数
回答ありがとうございます。
しかし、
Sharing Code with Visual Basic
http://zone.ni.com/devzone/cda/epd/p/id/2714
をDLしてCall Visual Basic dll.viを実行しようとしても
エラーになります。エラー詳細は
「インボークノードで選択されたメソッドが無効か、メソッドが選択されていません。
インボークノードを右クリックしてメソッドを選択してください。」
です。
ブロックダイアグラムを見てもライブラリ関数呼び出しノードはないし、
説明文は英文でわけ分からんし、困りました。
 
とりあえず私が作ったVIを添付します。(動きませんが)
こんな風に、いくつかの数値(倍精度、整数)をあたえて、
計算させたいだけなのです。
(実際の計算の中身はもっと複雑で、LabVIEWでは書けないとはいわないが、
書くのがいやになるようなものです)
 
よろしくお願いします。
 
 
 
 
0 件の賞賛
メッセージ3/6
6,400件の閲覧回数
Nagasaka 様

ご返信ありがとうございました。
前回の返信にて説明不足な点が多く、ご覧いただけないリンクをご紹介してしまい、申し訳ございませんでした。
改めてご紹介致します。

なぜ、Call Library Functionを使用し、Visual Basicで作成されたDLLを呼ぼうとすると、うまく機能しないのですか?
http://digital.ni.com/public.nsf/allkb/7C6B4100BC57C57686256E3500491ED0?OpenDocument

上記のリンク先にも記載されておりますが、VisualBasic の DLL は ActiveX となるため、「ライブラリ関数呼び出しノード」はご利用いただけません。
代わりに「オートメーションオープン」と「インボークノード」でVisualBasicの関数を呼び出していただく必要がございます。

そのサンプルが、以下よりご覧いただけます。

Sharing Code with Visual Basic
http://zone.ni.com/devzone/cda/epd/p/id/2714

Call Visual Basic dll.vi を実行するには、VisualBasicのDLLを regsvr32 コマンドを利用してシステムに登録する必要がございます。
VI実行前に、sharing_code\LV フォルダ内の Register the DLL.bat を実行することで登録をし、実行後にはUnregister the DLL.bat で解除していただけます。

サンプルとして、添付いただいたVIを少し変更いたしましたので、ご確認ください。

このメッセージは 06-18-2007 05:54 AMに A.Iwami が編集しています。

このメッセージは 06-18-2007 05:56 AMに A.Iwami が編集しています。

0 件の賞賛
メッセージ4/6
6,367件の閲覧回数

お世話になります。 VBのdllを呼び出す方法を探しており、この投稿にたどり着きました。

しかしながら、http://zone.ni.com/devzone/cda/epd/p/id/2714のリンクが切れており、サンプルをダウンロードすることができません。

サンプルを参照可能なリンクをご教示いただけないでしょうか。

 

0 件の賞賛
メッセージ5/6
3,712件の閲覧回数

   xendoukさん、

タイトルのSharing Code with Visual Basicを調べると、似たようなページはありますが、サンプルコードがなさそうですね。
http://www.ni.com/white-paper/4420/en/

岩見さんの投稿内容と投稿したsample_vb_dll.viによると、元々のサンプルがオートメーションオープンとインボークノードを使用してDLLを呼び出しているので、上記のリンクのブロックダイアグラムは多分元々サンプルに近いと思います。

宜しくお願いします。  

 

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