DLLをロードしてアンロードする方法

更新しました Jan 4, 2024

使用製品

ソフトウェア

  • LabVIEW

問題

  • プログラムで呼び出された際にメモリへDLLをロードして、プログラムの最後にそれをアンロードしたいです。
  • 自分のコードに未使用のライブラリを含めないようにしたいです。

解決策

LabVIEW 8.2以降では、ダイナミックリンクライブラリ(DLL)を動的にロードしたりアンロードしたりすることができます。LabVIEWヘルプ: ライブラリ関数呼び出しノードでは、プロセスについて説明しています。要約すると、DLLを動的にロードするには、ライブラリ関数の呼び出しダイアログボックスでダイアグラムでパスを指定オプションをオンにする必要があります。下図に示すダイアログボックスは、ライブラリ関数呼び出しノードをダブルクリックすることで開くことができます。
 

 

ダイアグラムでパスを指定パラメータが選択された後、パス入力という名前の端子がライブラリ関数呼び出しノードに表示されます。この端子は、呼び出すDLLへのパスを受け入れます。そのライブラリ関数呼び出しノードが実行されると、リファレンスで指定されたDLLがメモリにロードされます。下図を参照してください。


 


LabVIEWヘルプ: ライブラリ関数呼び出しダイアログボックスでは、パス入力を使用して、以前に参照されたライブラリをメモリからアンロードすることもできます。これを行うには、空のパスまたは無効なパスをパス入力に配線し、LabVIEWがノードから以前に参照したライブラリをメモリからアンロードします。言い換えれば、最初にDLLを呼び出した同じライブラリ関数呼び出しノードのパス入力に、空のパス定数またはNULLパス定数を配線する必要があります。下図はその例を示しています。最初の呼び出しはDLLをロードし、ブール値はDLLをアンロードしてこのコードを停止します。Falseの場合(図示なし)にはタイミングがありますが、コードはありません。


 

空または無効なパスが、最初に呼び出されたものとは別のライブラリ関数呼び出しノードに配線されている場合、そのDLLはメモリからアンロードしません。下図は、その例を示しています。