はじめまして。
VC++で作成したプログラムを動かそうとしたら
例外処理 (初回) は AFLRMONI.exe (COMCTL32.DLL) にあります: 0xC0000005: Access
Violation。
のようなエラーが出ました。
OSはXP-SP2です。
どこを調べても意味がわからないので、どなたかご存知ならご教授ねがいます。
読み書きしてはならないメモリにアクセスしてしまったということです。
AFLRMONI.exe の中で COMCTL32.DLL の関数を呼び出している所で、引数が不正な可能性
が高いです。
それ以上のことはわかりません。
シャノンさんが解答していますが、これはビルド時には発見できないプログラマのミス
によってでるものです。
どこで、メモリを不正にアクセスしているか絞り込んでみてください。
ブレイクポイントをいくつか適当に設置して、F5実行でここまでは実行できている、こ
こからはダメだ。じゃぁもう少しブレイクポイントの間隔を狭めて再度やってみようと
いう具合にして突き止めてください。
シャノンさん、Blueさん、回答ありがとうございます。
ビルドをする時に「Debug」ですると、実行できないのですが
「Release」でするとちゃんと実行できます。
「Debug」の時のみ例外処理エラーになるのですが
この2点には何か違いがあるのでしょうか?
更にOSがXP-SP1で実行した場合はXP-SP2で実行した時とは反対になります。
「Debug」ではちゃんと実行でき、「Release」ではエラーになります。
> 「Release」でするとちゃんと実行できます。
は実行できているように見えるだけです。
デバッグビルドとリリースビルドの違いについて
http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/vccore98/html/_core_common_problems_switching_from_debug_to_release_build.as
p
焦らずに、Debugモードでデバッグしてください。
ありがとうございます。
ではデバッグで原因を突き止めてみます。