0

コードは正常にコンパイルして実行できますが、コードを終了するとエラー メッセージが表示されることがあります。

Project raised exception class EAccess Violation with message 'Access violation at address 0040..... in module `00F.....`. Write of address ..........' Process stopped. Use step or Run to continue.

また、エラーは常にこれら 3 行のコード内で順番に発生することにも気付きました。

 YCB[i][j].R=((65.738*image[i][j].R)+(129.057*image[i][j].G)+(25.064*image[i][j].B))/256+16;
      YCB[i][j].G=((-37.945*image[i][j].R)+(-74.494*image[i][j].G)+(112.439*image[i][j].B))/256+128;  
      YCB[i][j].B=((112.439*image[i][j].R)+(-94.154*image[i][j].G)+(-18.285*image[i][j].B))/256+128;

コードは、に転送RGBするために使用されますYCbCr

私のプログラムには画面を.aviファイルに記録する機能があるため、終了時にエラーが表示される限り、ファイルは完全に保存できません(つまり、プレーヤーで開くことができません)。

この質問は私を悩ませますが、時には何も起こらないこともあります...

このメッセージが何を意味するのか、また表示されたときにどうすれば解決できるのかを本当に理解したいと思っています。

PSメモリと関係があるようですが、BCB 6.0でメモリレコードを調べるにはどうすればよいですか??

4

1 に答える 1

1

無効なEAccessViolationメモリにアクセスしていることを意味します。したがって、次のいずれかです。

  1. およびYCB/またはimage配列が無効です。

  2. iおよび/またはj配列の境界を超えています。

配列が割り当てられる方法と場所、配列が解放される方法と場所、または配列の値を取得する方法iと場所を示すのに十分なコードを示していません。jしたがって、誰かがあなたのために問題を診断する方法はありません。デバッガーを使用して、アプリのシャットダウン ロジックで実際に何が起こっているかを自分で確認する必要があります。

于 2013-08-24T07:20:34.380 に答える