- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExitProcessの関数コールについて教えてください。
)
ExitProcessの関数コールについて教えてください
このQ&Aのポイント
- ExitProcessの関数コールについて教えてください。WinMainを抜けた後に指定の関数をコールする際にエラーが発生し、dll関連の問題の可能性があります。
- 現在DirectX9.0とWindows7 64bitでプログラムを書いている状況で、test.exeのハンドルされていない例外が発生し、0xC0000005のエラーコードが表示されます。
- 解決方法はdll関連の問題を確認することです。具体的な解決策は見つかっていませんが、dllが正しく読み込まれているか確認し、dll関連の設定を適切に行うことをおすすめします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
プログラムはマルチスレッド ( _beginthread、_beginthreadex、CreateThread などで、スレッドを作成 ) でしょうか? もしマルチスレッドであるなら、子スレッドに問題 ( スタック領域のメモリ破壊等 ) があるのではないかという気がします。
その他の回答 (1)
- chie65536(@chie65535)
- ベストアンサー率44% (8741/19839)
回答No.1
スタートアップルーチンがWinMainを呼び出す前に確保して使用し、WinMainを抜けた後にExitProcessなどが参照するメモリを破壊している可能性が高いです。 例えば「WinMainが呼ばれた時点で、ポインタなど、何らかの意味ある値が入っているグローバル変数や、グローバルな構造体変数」などが破壊されている可能性が非常に高いです。 それらは「変数」ですから、当然、動いているプロセスそのものは値を自由に変えられます。つまり「ポインタとしてアクセスした時に、メモリアクセス違反が起きるような値に書き替える事だって出来る」のです。 配列の添え字が負数になっているとか、ポインタが不正になっているか、など、メモリを破壊している部分が無いか、確かめてみましょう。