アカデミック 会社 イベント NI Developer Zone サポート ソリューション 製品とサービス お問い合わせ MyNI
This Document is not yet Rated  Rate this Document

「現在のファイルパス」VIでVI上では正しいパスがEXE化すると動作しない理由

使用ソフトウェア: LabVIEW Development Systems>>LabVIEW Base Package
使用ソフトウェア・バージョン: 7.0
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア: N/A

問題:

VIをEXE化した場合、サブVIは常にMainVI と同一のフォルダにありますが、VIの場合とEXEの場合では、階層が異なってしまいます。どうすればどちらでも問題なく参照したいファイルを見つけ出せますか?



解決策:

LabVIEW の「現在のVIのパス(Current VI's Path)」VIは、EXE化した場合とVIの場合では返すパスが異なります。例えば、「C:\LabVIEW\」に「myapp.vi」と「myapp.exe」を保存したとします。

  • VI で実行する場合、「現在のVIのパス(Current VI's Path)」VIは下記のアドレスを返します。
    C:\LabVIEW\myapp.vi
  • EXEで実行する場合、「現在のVIのパス(Current VI's Path)」VIは下記のアドレスを返します。
    C:\LabVIEW\myapp.exe\myapp.vi

VIの場合、上記の「現在のVIのパス(Current VI's Path)」VIを「パスをストリップ(Strip Path)」でパスの最後の要素を1つ取り除く(ストリップ)すると、「C:\LabVIEW\」 になります。「C:\LabVIEW\」 はディレクトリですので、「ファイル/ディレクトリ情報(File/Directory Info)」VIの「ディレクトリ」出力はTrueを返します。Trueの場合は2度目のストリップは行いません。

EXEの場合、上記の「現在のVIのパス(Current VI's Path)」VIを「パスをストリップ(Strip Path)」で一度ストリップすると「C:\LabVIEW\myapp.exe」になります。例えば 「C:\LabVIEW\」 に 「myapp.vi」 と 「myapp.exe」 を保存したとします。EXE化させる際には、正しいフォルダ「C:\LabVIEW」にたどり着かせるために、フォルダをもう一つ多くストリップさせる必要があります。

上記問題の回避策として、下記のようにプログラミングします。

LabVIEW バージョン7.1の場合


LabVIEW バージョン8.5の場合



関連リンク: 技術サポートデータベース 18RDJ60O: Why Does My Executable Not Work When Using the Current VI's Path Constant?

添付:





報告日時: 01/30/2008
最終更新日: 01/14/2009
ドキュメントID: 4HT22CDB

Your Feedback! poor Poor  |  Excellent excellent   Yes No
 Document Quality? 
 Answered Your Question? 
  1 2 3 4 5
Please Contact NI for all product and support inquiries.submit