0

次のエラーが表示されます: client.exe の 0x77d815de で未処理の例外: 0xC0000005: アクセス違反の読み取り場所 0x00000000。

通常のアクセス違反エラーが何を意味するかは理解していますが、これは場所 0x77d815de で繰り返されます。たとえば、プログラム内のコード行を削除すると、行に関係なく場所 0x77d815de で中断します。私が実行しているコードは単純な Windows API コードであり、switch ステートメント (削除しようとしました) とクラスの初期化 (これも削除しようとしました) にいくつか追加されています。オーバーフローが発生する理由、またはこれを修正する方法について、少なくともいくつかの提案をお願いします。お時間をいただきありがとうございます。

--

発見したのは、コンパイラと私が気付かない方法で2つのスイッチケースが連動していることが原因でした。私のリポジトリから古い形式に戻しましたが、問題ありませんでした。DirectX Device クラスで破損したデータが発生し、その初期化の一部が台無しになり、読み取り例外が発生しました。

4

1 に答える 1

0

通常、これらのアドレスは に表示されntdll.dllます。おそらく WinAPI に不正なデータを提供しており、正しく使用していないためにクラッシュしています。

この時点でデバッガーを中断すると、コール スタックが表示されます。呼び出しを行った独自のコードに到達するまで、それをさかのぼることができます。そこから、問題を見つけるのがはるかに簡単になるはずです。

于 2012-12-17T04:09:19.913 に答える