ReleaseビルドするとTextWriterがエラー?
ポテトサラダ  2016/06/09(Thu) 22:31
おかげ様で順調に進んでおります。
さて本題ですが、僕が現在組んでいるプログラムでは、CSVファイルの中身に対し最後尾に付け加える処理とファイルのうち一行だけを書き換える処理があります。
その関係で一度ファイルの中身を削除してから、予め取り出しておいた文字列を編集したうえで、再度入れて書き出すという内容になっています。
そのとき効果的に中身を削除する方法がわからなかったため、TextWriterで開きclear関数を使い削除しようとしました。
しかしその方法だと、Debugビルドでは正常に動作したのですがReleaseビルドでは動作を停止しました。
結局CSVWriterで開きその後すぐに閉じて、また開くという手段をとった結果、Releaseビルドでも動作を停止せず正常に動いたので、解決はしました。
しかし、なぜTextWriterを使った時Debugビルドでは動作が停止せずReleaseビルドでは停止したのか原因がわからなかったため、後学のために質問させていただきました。

ちなみに失敗したときのその部分の大まかなコードの流れは以下になります。

if(gui.button(L"bt").pushed)
TextWriter Delete(L"〜.csv");
Delete.clear();
Delete.close();
CSVWriter writer(L"〜.csv");
writer.write…
記事編集
Reputeless  2016/06/10(Fri) 12:15
ご報告ありがとうございます。
TextWriter::clear() がクラッシュするのは Siv3D のバグでした。
現在開発中の次期バージョンで修正しました。

= March 2016 での回避法 =
Delete.clear() の直前に Delete.path() を呼ぶと、クラッシュは発生しません。
編集
ポテトサラダ  2016/06/10(Fri) 17:36
なるほど、バグでしたか。
お役に立てたようでなによりです。
わざわざ回避法まで記載してくださり、ありがとうございます。
次期バージョンの配信を、心待ちにしております。
編集
件名
Re: ReleaseビルドするとTextWriterがエラー?
名前
コメント
画像添付


投稿修正キー (投稿を修正する時に使います)
画像認証 (右画像の数字を入力) 投稿キー

- WEB PATIO -