From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



ライブラリ関数呼び出しノードで呼び出したDLLはどのタイミングでメモリに読み込まれますか?



使用ソフトウェア:
使用ソフトウェア・バージョン: 1.0
使用ソフトウェア・バージョンに特化:
二次のソフトウェア: N/A

問題:

LabVIEWでのメモリー管理をより注意深く行いたいです。LabVIEWはライブラリ関数呼び出しノードでどのタイミングでDLL(ダイナミックリンクライブラリ)をメモリに読み込みますか?



解決策:

ライブラリ関数呼び出しノードを含むVIがメモリに読み込まれたときにDLLも読み込まれます。これには2つの場合が考えられます。

  1. ライブラリ関数呼び出しノードがブロックダイアグラム上のサブVIの中にある場合、もしくは最上位VIのブロックダイアグラムの中にある場合

    この場合、トップレベルのVIを開いたときにサブVIがメモリーに読み込まれます。そして同時にライブラリ関数呼び出しノードによって指定されたDLLが読み込まれます。DLLを呼び出しているVIが完全に閉じられ、メモリから開放された時に、DLLもメモリから開放されます。

  2. ライブラリ関数呼び出しノードがリファレンス呼び出しノードによって呼び出されるサブVIの中にある場合

    この場合では、「VIリファレンスを開く(Open VI Reference)」VIが実行された時にサブVIがメモリに読み込まれます(通常リファレンス呼び出しノードの直前です)。呼び出されたVIリファレンスが閉じられた時に、DLLがメモリから開放されます。


関連リンク:

Developer Zone サンプルプログラム: Controlling DLL Loading At Runtime in LabVIEW
Developer Zone サンプルプログラム: Using Call by Reference with VI Server



添付:





報告日時: 08/31/2005
最終更新日: 01/14/2009
ドキュメントID: 3OUJ9U4B