注釈: この記事は、Tutorial: Configuring the Call Library Function Node to call a Simple DLL を翻訳したものです。内容に相違がある場合、英語の資料が正文となっております。
Overview
このチュートリアルではシンプルなCやC++のDLLをLabVIEWから呼び出すためにライブラリ関数呼び出しノードを配置して構成する手順を紹介します。
ライブラリ関数呼び出しノード構成ダイアログのオプションについての詳細は、下記の資料を参照してください。
LabVIEWヘルプ: Configuring the Call Library Function Node
サンプルDLL
添付されているサンプルDLL、PassingDataSampleDLL.dll、にはこのチュートリアルで使用する下記の関数を含む複数の関数が含まれています。
int PassingParameters_Integer (int x, int y)
この関数は、引数xとyの2つの数字の和を戻します。
チュートリアル
- 新規VIを開く
- ブロックダイアグラムを開く
(ウィンドウ » ブロックダイアグラムを表示)
- ライブラリ関数呼び出しノードを配置
(関数パレット » コネクティビティ » ライブラリ&実行可能ファイル » ライブラリ関数呼び出しノード)
- ライブラリ関数呼び出しノードの構成ダイアログを開く
(ライブラリ関数呼び出しノードを右クリックして構成...を選択、またはライブラリ関数呼び出しノードをダブルクリック)

- 関数タブで、ライブラリ名またはパスの横にあるブラウズボタンをクリックし、サンプルDLLのPassingDataSampleDLL.dllを選択
- この作業により関数名リストボックスに、このDLLで使用可能な関数がリストされます
- 関数名リストボックスからPassingParameters_Integer関数を選択
- 現在関数タブは下記のようになります。関数プロトタイプが実際の関数の形と一致していないことに注目します。次からの手順でこれを修正します。

- パラメータタブに移動

- この関数は整数(和)を戻すため、戻り値をInt32に設定
- 戻り値を左のパラメータリストから選択
- 現在のパラメータから、数値をタイプリストボックスから選択
- データタイプを符号付き32ビット整数に設定
- この関数は2つの整数を引数として受け付けるため、これらを入力
- 挿入
ボタンをクリックし、引数を追加
- この動作で、arg1というデフォルトで値渡しのInt32の新しい引数が作成されます。これが必要な引数であるため、そのままにします。
メモ:引数の名前は変更可能ですが、これによりDLLの呼び出しに影響を与えることはありません。
- 手順11.1を繰り返して新しい引数を追加。
- 現在パラメータタブは下記のようになります。関数プロトタイプがDLL関数の実際のプロトタイプと一致することに注目します。

- OKをクリックして構成ダイアログを閉じる
- ライブラリ関数呼び出しノードへ、フロントパネルからの入出力を構成
- ライブラリ関数呼び出しノードを選択
- Ctrl+Spaceでクイックドロップメニューを表示
- Ctrl+Dで自動的にノードの入出力用の制御器と表示器を作成
- フロントパネルを開く
(ウィンドウ » フロントパネルを表示)
- arg1とarg2制御器の値を変更し、実行ボタンをクリック
- return type 2表示器が、DLL関数からの戻り値であるarg1とarg2の和に更新されることに注目します(フロントパネルの表示は異なる可能性があります)。

まとめ・次のステップ
この記事ではシンプルなCやC++のDLLをLabVIEWから呼び出すためにライブラリ関数呼び出しノードを配置して構成する手順を紹介しました。ライブラリ関数呼び出しノードの構成ダイアログでオプションを変更することで、ライブラリ関数呼び出しノードからより複雑な関数を呼び出すことが可能です。
共有ライブラリをインポートウィザードは、インポートするDLLのために構成されたライブラリ関数呼び出しノードが含まれたラッパーVIを自動的に作成し、C/C++のDLLを呼び出す作業を効率化します。
チュートリアル: 共有ライブラリをインポートウィザードで C/C++ の DLL 関数のラッパーVIを作成する
ライブラリ関数呼び出しノードで、より複雑なデータタイプを処理する例は下記の記事に記載されています。
様々なデータタイプを含む C/C++ の DLL を LabVIEW から呼び出す
添付ファイル
CallingSimpleDLL.vi
PassingDataSampleDLL.dll