ハンドルされない例外は〜にあります。を解決するには?

解決


SHUN  2004-10-13 20:58:19  No: 54725  IP: [192.*.*.*]

掲示板住人各位、お世話になります。

表題の件で、現在CのコードをVCに取り込んでいます。GUI部分をVCで、中身の処理を以前作製したCのコードを流用しています。新しく関数を追加したところ

「ハンドルされない例外は○○○.exe(MFC42.DLL)にあります:0xC0000005:Access Violation」

とエラーが表示され困っています。追加した関数を消去してもこのエラーが残ります。どなたか同じような経験をされた方はいないでしょうか?

編集    削除
tetrapod  2004-10-13 21:10:01  No: 54726  IP: [192.*.*.*]

そのメッセージはあなたのプログラムがバグっていることを報告しているのです。
デバッグしてください。徹底的にデバッグしてください。

編集    削除
SHUN  2004-10-13 22:06:19  No: 54727  IP: [192.*.*.*]

わかりました・・・
いろいろ調べたけどそれしかないみたいですね。
せめてどこがバグってるかぐらいのヒントでも示して欲しいものです。。。。。

編集    削除
tetrapod  2004-10-13 22:17:20  No: 54728  IP: [192.*.*.*]

ヒントならデバッグウィンドウにいくらでも表示されています。
「コールスタック」とか参考になると思われます。

ただ、コールスタックで表示されるのはエラーになった場所であり、
バグっている場所ではないので注意。

「不正なポインタの使用方法によりメモリ破壊」→「ぜんぜん違う場所でエラー発生」
というのはよくあるパターンです。
エラー表示では後者の場所が報告されますが、原因である前者の場所を直さないと消えません。

警告レベルを上げてコンパイルしてみるとか
他社コンパイラでコンパイルしてみるとか
取れる手はいくらでもあります。

編集    削除
SHUN  2004-10-13 22:51:49  No: 54729  IP: [192.*.*.*]

警戒レベルを上げてワーニングを片っ端からつぶしたら消えました。
>「不正なポインタの使用方法によりメモリ破壊」
おそらくこれが原因だと思います。大変参考になりました。ありがとうございます。

編集    削除