NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

labview 2013でexe化するとファイル書き出しが出来なくなる

解決済み
解決策を見る

2013 SP1 (13.0.1f6, 32bit) を使用して計測用viプログラムを作成しました。

設定フィルの書き出し、読み込み機能を実装しており、vi上で実行すると問題なく動くのですが、

exe実行ファイルにビルドすると、ファイルが書き出せなくなっています。

これはビルドする際の設定が悪いのか、それともプログラムのバグなのか回答いただけませんか。

0 件の賞賛
メッセージ1/5
4,098件の閲覧回数
解決策
トピック作成者Tokohが受理

Tokoh 様、

 

EXE実行でファイルが書き込めない際、何かエラーコードはでませんでしょうか?

エラーがあるとより具体的な対処法が見つけられるかと思います。

 

EXE実行でよくあるファイルI/O問題として、VIとEXEにおけるファイルパス構造が変わることと

ユーザアカウント制御(UAC)による影響がございます。

 

前者は、下記のページに情報が記載されております。

KB: VIは正常に動作しますが、実行ファイル(exe)にするとエラー-7が発生します

 

後者のUACは、Cの直下などのアクセス権限を管理されているPCにおいてはその場所に書き込みできないため、

データディレクトリ(ドキュメントのディレクトリ)などアクセス権限のある場所にパスを変更する必要がございます。

 

以上です。

メッセージ2/5
4,056件の閲覧回数

ソースちょっと見ました。

 

ファイルの名前を決めるところに使われている current_path.vi こちらが問題と思われます。

この current_path.vi はviでの実行時とexe(もしくはllbにまとめたとき)で実行した時で出力が異なるところに注目してください。

 

確認として、生成するファイル名を仮に表示する表示器を置いて、vi実行時とexe実行時のファイル名の違いを確認してみてください。よくわかると思います。

この内容はyueno様のおっしゃっている内容と同じ物です。

 

私はこのcurrent_path.viを使わず、ファイルi/o→ファイル定数にある Apprication Directory.vi を良く使います。こちらはディレクトリをvi exe どちらでもちゃんと返します。

 

間違っていたらすみません。。。 

メッセージ3/5
4,017件の閲覧回数

私もApplication Directory.vi を使うことをお勧めします。EXEの時とLVPROJでの両方で使え条件分けが必要ありませんので便利です。

TailOfGon
Certified LabVIEW Architect 2013
0 件の賞賛
メッセージ4/5
3,962件の閲覧回数

回答ありがとうございます。提案頂いたパスを確認し、無事解決できました。

application directoryについては、まだ確認できていませんが、試してみようと思います。

0 件の賞賛
メッセージ5/5
3,915件の閲覧回数