2016-04-11 8 views
0

外部C DLLを使用するLabViewアプリケーションがあります。開発環境でアプリケーションを実行すると、アプリケーションが終了してもDLLがブロックされます。開発環境で呼び出されたときにLabViewがDLLをアンロードしない

DLLを上書きまたは削除する場合は、まずLabViewを完全に終了する必要があります。

これは既知の問題ですか?誰もこの問題の解決策を提示できますか?

答えて

4

はい、あなたはあなたのLabVIEWアプリケーションに2つのことを行う必要があります。

  1. は実行にリンクロード時からのLabVIEWの動作を変更するブロックダイアグラム上ではなく、設定ダイアログでライブラリ(へのパスを指定します。時系列リンク)。
  2. DLLノードの使用が終了したら、ヌルパスを配線して、使用し終わったことをLabVIEWに伝えます(Windowsの参照カウントが0になり、OSがファイルをロック解除します)。ここ

詳細:Can I Dynamically Load and Unload a DLL in LabVIEW?

+0

それはそんなに「設計上の決定」などの「既知の問題」ではありません。別のプロセスを持つ他のデバッガとは異なり、LabVIEWには実行コードとIDEの両方に1つのプロセスがあります。いくつかのことを単純化し、他のものをより困難にします。しかし、それはデザイナーの意図的な選択です。 – srm

関連する問題