MFC初心者です。
SDIを利用してお絵かきソフトを作ろうとしています。
ファイル入出力がないときは問題が発生しないのですが、
ファイルを開いた後、暫く放置するとエラー0xC0000005: Access violationが発生します。
ファイルの読み込みについて、具体的な処理をコメントアウトしても発生します。
原因が切り分けられないのですが、何が原因だと考えられますでしょうか。
ご回答いただければと思います。よろしくお願いします。
バージョン書くの忘れてました、visual studio2008使用です。
デバッグモード、つまりデバッグビルドで、デバッグ開始した場合はどうですか。
この場合で「0xC0000005: Access violation」が発生すれば、
デバッガが当該行を表示してくれます。
この状態で「呼び出し履歴」ペインで、自身のコードまで呼び出し元の方に戻っていけば
、
原因が発見できると思われます。
>>仲澤@失業者様
デバッグモードで回しているのですが、待機状態なので私のコードまで戻ってくることが
できません。
更に検索を進めていた結果、症状としては、
http://rarara.cafe.coocan.jp/cgi-bin/lng/vc/vclng.cgi?print+201205/12050011.txt
と同じ状態ということがわかりました。
ですが、CFileDialogの処理がMFC-SDIの内部に格納されているので手出しができない状態
です。
これを調べると先に進めますね。
CFileDialog(.....);の手前で止めると、
>暫く放置するとエラー0xC0000005: Access violationが発生します。
これはないですか?
なるほど、DoModal()の後ですもんね。
ということで、ややマジに調べてみました。
現象の詳細は以下のページが詳しかったです。
http://mfctips.com/2012/10/29/cfiledialogdomodal-causes-access-violation/
MSさんは、この件でホットフィックスを出してますね。以下のページを参考にしみてはど
うでしょう。
https://support.microsoft.com/en-us/kb/2718841/ja
>>ITO様
DoModal()の後で発生します。
>>仲澤@失業者様
詳しく調べていただきありがとうございます。
hotfixをあてることで解決しました。
また、記事を読ませていただいたところ、もしかしたらQTTabbarのオプションがぶつかっ
てたのかもしれませんが、これは推測で未調査です。
以上となります。
本当にありがとうございました。