プロが教える店舗&オフィスのセキュリティ対策術

ハンドルされていない例外とアクセス違反
.NET2003のMFCでプログラムをしたところ上記のエラーが発生しました。
ビルドが通ったのでデバッグしたところ、"(mfc71d.dll) でハンドルされていない例外が発生しました""書き込み中にアクセス違反が発生しました"となりました。
また、自分ではプログラムしていないcppファイル中、以下の"{"の所でデバッグが止まってしまいました。
CSyncObject::CSyncObject(LPCTSTR pstrName)
{
UNUSED(pstrName); // unused in release builds

プログラム初心者のためどこが悪いのかわからず困っています。
原因となるようなミスを教えてください。
よろしくお願いします。

A 回答 (2件)

大抵の場合、メモリー破壊 or 初期化忘れによる不正なメモリー領域へのアクセスが原因です。


C/C++はメモリー管理がプログラマ責任になっていますので適切な処理を行っていないと簡単にメモリー破壊やアクセス例外を起こします。
printf系の関数を多用している場合にはスタック破壊も起こしやすいです。

メモリー破壊を起こした場合、デバックで停止するのはメモリー破壊を起こした箇所では無く全く関連の無い場所である事が殆どです。
スタックトレースで呼び出し元を辿って自分が作った箇所まで戻ってメモリー破壊、初期化漏れ等が無いか探してください。
    • good
    • 1

んなとこだけ見せられても。


スタックトレースで「自分の書いたところ」まで戻ってその周辺を提示してくださいな。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!