From Saturday, Nov 23rd 7:00 PM CST - Sunday, Nov 24th 7:45 AM CST, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Community Documents

cancel
Showing results for 
Search instead for 
Did you mean: 

チュートリアル: 共有ライブラリをインポートウィザードで C/C++ の DLL 関数のラッパーVIを作成する

注釈: この記事は、Tutorial: Creating Wrapper VIs for C/C++ DLL functions using the Import Shared Library Wizard を翻訳したものです。内容に相違がある場合、英語の資料が正文となっております。

 

 

概観

このチュートリアルでは共有ライブラリをインポートウィザードを使用して、C/C++のDLLを呼び出す作業を効率化する手順を紹介します。このウィザードは、インポートするDLLのために構成されたライブラリ関数呼び出しノードを含むラッパーVIを自動的に作成します。

 

共有ライブラリをインポートウィザードについての詳細は下記の資料に記載されています。

LabVIEWヘルプ: 共有ライブラリファイルから関数をインポートする

 

サンプルDLL

添付されているサンプルDLL、PassingDataSampleDLL.dll、には、整数、配列や文字列からポインタや構造体(クラスタ)まで、様々なタイプの引数や戻り値の型が使用された複数の関数が含まれています。

 

チュートリアル

  1. 共有ライブラリをインポートウィザードを開く
    ツール » インポート » 共有ライブラリ(.dll)…
  2. 最初のダイアログは、作成または更新モードを指定です。今回は新しいラッパーVIのライブラリを作成するため、共有ライブラリ用にVIを作成ラジオボタンが選択されていることを確認し、次へをクリック
  3. 共有ライブラリとヘッダファイルを選択ダイアログで、.dllファイルと.hファイルを参照
    9078-1.png
  4. 次へをクリック
  5. 今回はプリプロセッサや追加のファイルを含めないため、インクルードパスとプリプロセッサ定義を構成ページのデフォルトの値を残し、次へをクリック
  6. ウィザードがヘッダーファイルを解析し、インポート(ラッパーVIを作成)する関数のリストを表示します。ウィザードがラッパーVIの作成方法を解析できなかった関数は「X」印で示します。
    9078-2.png
    一部の関数はウィザードでインポートすることができません。共有ライブラリをインポートウィザードの制限やこれらを回避する方法は下記の記事に記載されています。
    様々なデータタイプを含む C/C++ の DLL を LabVIEW から呼び出す
  7. デフォルト設定を残し、次へをクリック
  8. プロジェクトライブラリ設定を構成ダイアログではラッパーVIライブラリの名前と保存先を設定できます。パスを<Tutorial>\WrapperVIsに変更し、VIがuser.libに追加されることを防ぎます。
    9078-3.png
  9. 次へをクリック
  10. エラー処理モードを選択ダイアログで、エラー処理モードシンプルエラー処理を選択し、次へをクリック
    9078-4.png
  11. VIおよび制御器を構成ダイアログでは、各関数のライブラリ関数呼び出しノードの設定を変更できます。ここで選択可能なオプションは、ライブラリ関数呼び出しダイアログボックスに似ています。
    9078-5.png
  12. デフォルト設定を残し、次へをクリック。ライブラリ関数呼び出しノードやラッパーVIの設定は作成後でも修正可能です。
  13. 生成概要ダイアログで次へをクリックし、ラッパーVIを生成開始
  14. 終了をクリックし、ラッパーVIを含むライブラリを閲覧
    060Library.png

 

まとめ・次のステップ

この記事では、共有ライブラリをインポートウィザードを使用してC/C++のDLLのためのラッパーVIを自動的に作成する方法を紹介しました。

 

これらのVIの入力と出力や、Configure VIs and Controlsでの呼び出しオプションは、手動で各VIに含まれるライブラリ関数呼び出しノードの構成して変更できます。これは、配列、ポインタや構造体を戻す関数で有用です。

 

共有ライブラリをインポートウィザードは、構造体や、関数のヘッダでポインタとしてリファレンスされている配列を戻す関数などの一部の関数には適応していません。これらのケースに対応する方法は、下記の記事を参照してください。
様々なデータタイプを含む C/C++ の DLL を LabVIEW から呼び出す

 

添付ファイル

PassingDataSampleDLL.dll
PassingDataSampleDLL.h
WrapperVIs.zip