03-22-2016 12:45 AM
2013 SP1 (13.0.1f6, 32bit) を使用して計測用viプログラムを作成しました。
設定フィルの書き出し、読み込み機能を実装しており、vi上で実行すると問題なく動くのですが、
exe実行ファイルにビルドすると、ファイルが書き出せなくなっています。
これはビルドする際の設定が悪いのか、それともプログラムのバグなのか回答いただけませんか。
解決済! 解決策の投稿を見る。
03-22-2016 09:45 PM
Tokoh 様、
EXE実行でファイルが書き込めない際、何かエラーコードはでませんでしょうか?
エラーがあるとより具体的な対処法が見つけられるかと思います。
EXE実行でよくあるファイルI/O問題として、VIとEXEにおけるファイルパス構造が変わることと
ユーザアカウント制御(UAC)による影響がございます。
前者は、下記のページに情報が記載されております。
KB: VIは正常に動作しますが、実行ファイル(exe)にするとエラー-7が発生します
後者のUACは、Cの直下などのアクセス権限を管理されているPCにおいてはその場所に書き込みできないため、
データディレクトリ(ドキュメントのディレクトリ)などアクセス権限のある場所にパスを変更する必要がございます。
以上です。
03-23-2016 10:07 PM
ソースちょっと見ました。
ファイルの名前を決めるところに使われている current_path.vi こちらが問題と思われます。
この current_path.vi はviでの実行時とexe(もしくはllbにまとめたとき)で実行した時で出力が異なるところに注目してください。
確認として、生成するファイル名を仮に表示する表示器を置いて、vi実行時とexe実行時のファイル名の違いを確認してみてください。よくわかると思います。
この内容はyueno様のおっしゃっている内容と同じ物です。
私はこのcurrent_path.viを使わず、ファイルi/o→ファイル定数にある Apprication Directory.vi を良く使います。こちらはディレクトリをvi exe どちらでもちゃんと返します。
間違っていたらすみません。。。
03-27-2016 08:27 PM
私もApplication Directory.vi を使うことをお勧めします。EXEの時とLVPROJでの両方で使え条件分けが必要ありませんので便利です。
03-29-2016 07:35 PM
回答ありがとうございます。提案頂いたパスを確認し、無事解決できました。
application directoryについては、まだ確認できていませんが、試してみようと思います。