ページ 11

なぜか自作プログラムの画面が真っ白になりました。

Posted: 2013年8月13日(火) 11:48
by かなたん
以前MFCでマインスイーパーを作ろうとしていました。
プレイはもうできて、ハイスコア登録もさせようとしていたころ、あまり時間が取れなくなり作れなくなりました。
で、最近時間ができたのでいざ続きを作ろうと思ったのですが、実行させてみるとタイトルバーやメニューバー以外は真っ白でした。
リビルドしてみてもPCをシャットダウンさせてみてもダメでした。
そこで、ソリューションを作りなおしてソースとリソースをコピペさせてみたところ、きちんと画面が表示されるようになりました。
そのままプレイしてみると、まだバグが残っていたのでハイスコア登録の名前登録部分でダイアログが何度も出続けてしまいました。
そのうち動作を停止され、プログラムをそのまま停止させました。
バグの原因を探るためにソースを修正しいざ再び実行させようとすると、また画面が真っ白になりました。
またソリューションを作りなおせば治るかもしれませんが、もしまた画面が真っ白になるようでは面倒なので、原因を探るべく質問してみることにしました。

もともときちんと画面表示されていたプログラムの画面が、実行時に真っ白になっている原因は何なのでしょうか?
ハイスコア登録以前は普通にプレイできていましたし、名前登録部分のバグが影響しているとは思っていません。
ソリューションを作りなおす以外に解決法はないのでしょうか?

まだバグが残っていたりしますが、原因究明につながればとソリューションフォルダ全体を圧縮してここにアップロードしておきました。
ファイルサイズは14.9MBです。
重いかもしれませんがよろしくお願いします。

Re: なぜか自作プログラムの画面が真っ白になりました。

Posted: 2013年8月13日(火) 11:56
by みけCAT
ダウンロードに失敗するようで、サイズが0バイトになります。
他の場所にアップロードできますか?


http://www.axfc.net/uploader/
https://gigafileupload.com/

Re: なぜか自作プログラムの画面が真っ白になりました。

Posted: 2013年8月13日(火) 12:48
by softya(ソフト屋)
少なくともソリューションを作りなおすのは何の解決にも成っていないと思います。
根っこのバグを何とかしないとダメなんでしょうが、コードを落とせないみたいなのでお待ちします。
MFCですよね? 対応出来る人は限られるかもしれません。

プロジェクトファイル、ソリューション、リソース、ソース、ヘッダを残して他を削るとファイルはコンパクトになりますよ。
ReleaseやらDebugやipchの名前のフォルダは不要です。

Re: なぜか自作プログラムの画面が真っ白になりました。

Posted: 2013年8月13日(火) 13:33
by かなたん
みけCAT さんが書きました:ダウンロードに失敗するようで、サイズが0バイトになります。
他の場所にアップロードできますか?
softya(ソフト屋) さんが書きました:少なくともソリューションを作りなおすのは何の解決にも成っていないと思います。
根っこのバグを何とかしないとダメなんでしょうが、コードを落とせないみたいなのでお待ちします。
MFCですよね? 対応出来る人は限られるかもしれません。

プロジェクトファイル、ソリューション、リソース、ソース、ヘッダを残して他を削るとファイルはコンパクトになりますよ。
ReleaseやらDebugやipchの名前のフォルダは不要です。
Releaseは作っていません。
Debugを消してみけCATさんが教えてくれたアップローダーにアップロードしなおしました。
(前回のアップローダーのところでは削った版でもアップロードしたものをダウンロードしてみたら0バイトでした・・・)
http://www1.axfc.net/uploader/so/2994363
今度はきちんとダウンロードできたことを確認しましたので、ダウンロードは問題ないと思います。
ファイルサイズは5.83MBです。
ソリューションを作りなおしたことはやはり解決になってないですよね・・・

Re: なぜか自作プログラムの画面が真っ白になりました。

Posted: 2013年8月13日(火) 15:46
by バグ
"test.txt"というファイルが使いまわされているのが原因ではないでしょうか?

CマインスイーパーDocクラスのLoadSettingという関数で、設定を読み出していますが、同クラスのSaveRecordという関数内で全く関係なさそうな値を、"text.txt"ファイルへ書き出しています。
そして、次の起動時にLoadSettingが呼び出された際に読み出しに失敗して、変数の初期化に失敗しています。

Re: なぜか自作プログラムの画面が真っ白になりました。

Posted: 2013年8月13日(火) 17:47
by かなたん
バグ さんが書きました:"test.txt"というファイルが使いまわされているのが原因ではないでしょうか?

CマインスイーパーDocクラスのLoadSettingという関数で、設定を読み出していますが、同クラスのSaveRecordという関数内で全く関係なさそうな値を、"text.txt"ファイルへ書き出しています。
そして、次の起動時にLoadSettingが呼び出された際に読み出しに失敗して、変数の初期化に失敗しています。
text.txtへの書き出し部分をコメントアウトしてみたら画面が出るようになりました。
たぶんgame.settingやtime.scoreを使う部分をtext.txtに変えていたみたいで・・・
正直言うとtext.txtファイルは気にはなっていましたが、中身を見るとたぶんテストで何か出してたんだな程度にしか思っていなかったため、これから続き作る時にきちんとどうにかすればいいとしか考えていませんでした。
とりあえず、これから自分できちんと解析していきます。
今回もみなさんありがとうございました。