SDIでファイルを開いた後、暫くすると落ちる

[戻る]
Hikaru 2015/06/05(金) 15:47:30
MFC初心者です。

SDIを利用してお絵かきソフトを作ろうとしています。

ファイル入出力がないときは問題が発生しないのですが、
ファイルを開いた後、暫く放置するとエラー0xC0000005: Access violationが発生します。

ファイルの読み込みについて、具体的な処理をコメントアウトしても発生します。

原因が切り分けられないのですが、何が原因だと考えられますでしょうか。
ご回答いただければと思います。よろしくお願いします。

Hikaru 2015/06/05(金) 15:50:03
バージョン書くの忘れてました、visual studio2008使用です。

仲澤@失業者 2015/06/05(金) 17:07:21
デバッグモード、つまりデバッグビルドで、デバッグ開始した場合はどうですか。

この場合で「0xC0000005: Access violation」が発生すれば、
デバッガが当該行を表示してくれます。
この状態で「呼び出し履歴」ペインで、自身のコードまで呼び出し元の方に戻っていけば
、
原因が発見できると思われます。

Hikaru 2015/06/05(金) 17:27:45
>>仲澤@失業者様
デバッグモードで回しているのですが、待機状態なので私のコードまで戻ってくることが
できません。

更に検索を進めていた結果、症状としては、
http://rarara.cafe.coocan.jp/cgi-bin/lng/vc/vclng.cgi?print+201205/12050011.txt

と同じ状態ということがわかりました。
ですが、CFileDialogの処理がMFC-SDIの内部に格納されているので手出しができない状態
です。

ITO 2015/06/06(土) 13:21:36
これを調べると先に進めますね。
CFileDialog(.....);の手前で止めると、
>暫く放置するとエラー0xC0000005: Access violationが発生します。
これはないですか?

仲澤@失業者 2015/06/08(月) 10:21:46
なるほど、DoModal()の後ですもんね。
ということで、ややマジに調べてみました。
現象の詳細は以下のページが詳しかったです。

http://mfctips.com/2012/10/29/cfiledialogdomodal-causes-access-violation/

MSさんは、この件でホットフィックスを出してますね。以下のページを参考にしみてはど
うでしょう。

https://support.microsoft.com/en-us/kb/2718841/ja

Hikaru 2015/06/08(月) 17:55:22
[[解決]]
>>ITO様
DoModal()の後で発生します。

>>仲澤@失業者様
詳しく調べていただきありがとうございます。
hotfixをあてることで解決しました。
また、記事を読ませていただいたところ、もしかしたらQTTabbarのオプションがぶつかっ
てたのかもしれませんが、これは推測で未調査です。

以上となります。
本当にありがとうございました。

古いスレッドには追加発言できません。