LoginSignup
0
3

More than 5 years have passed since last update.

C++ Builder > Error: モジュール '何がしのプログラム.exe'のアドレス0044392Eでアドレス000005B5に対する読み取り違反がおきました。' > 原因の特定 | 原因

Last updated at Posted at 2017-06-26
動作環境
C++ Builder XE4

エラー

フォームの追加作業をしていた。
プログラム実行直後に以下のエラーが出るようになった。

モジュール '何がしのプログラム.exe'のアドレス0044392Eでアドレス000005B5に対する読み取り違反がおきました。'

上記のダイアログでOKを押すと、プログラムは実行する状態。

原因の特定

  • プログラムを一時停止する
  • 「検索 > 指定アドレスに移動」を選択する
  • $を付けて、アドレスを入力する
    • (例: $0044392E)

該当のcppファイルの行が表示される。

(スタックなどのアドレスの場合は、対応行が表示されない場合もある)

原因

FormCreate()時にメンバ変数の値を元にif文の処理をしていた。

フォームの数が少ないときは「偶然」うまく動いていたのだろう。
(メンバ変数の生成タイミングがたまたま良かった?)

FormCreate()時にメンバ変数の参照をやめるようにしたら、エラーは出なくなった。
(代わりにFormShow()での処理に変更した)

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3