Windows10の「アドレスDelphiエラーでのアクセス違反」とは何ですか?
この記事では、アドレスエラーでのアクセス違反、Windows10 / 8/7でのアドレスDelphiエラーでのアクセス違反を修正する方法について説明します。問題を解決するための簡単な手順/方法が案内されます。議論を始めましょう。
「Delphi」:Delphiは、Object Pascalプログラミング言語のDelphiダイアレクトを使用するソフトウェアであり、現在Embarcadero Technologiesによって開発および保守されている、デスクトップ、モバイル、Web、およびコンソールソフトウェアの迅速なアプリケーション開発のための統合開発環境(IDE)を提供します。 Delphiのコンパイラは、Microsoft Windows、MacOS、iOS、Android、およびLinuxOSベースのデバイス用のネイティブコードを生成します。
ただし、何人かのDelphiユーザーは、プログラムを作成してテストし、それをどこにでも送信すると、「アドレスDelphiエラーでのアクセス違反」に直面したと報告しました。このエラーは、プログラムがテストされたプログラムの送信に失敗したときに、ソフトウェア開発でDelphiを使用した場合に表示されます。コンパイル命令{$ D}を使用してプログラムをコンパイルすることを検討してください。Delphiは、アクセス違反エラーのソースコードを見つけるのに役立つ画像ファイルを作成できます。
プロジェクトオプションダイアログでは、必要なものすべてを指定できます。ユニットファイルの場合、デバッグ情報はユニットのオブジェクトコードとともにユニットファイルに記録されます。アドレスエラーでのアクセス違反は通常、Delphiでの作業の途中で発生し、問題の解決を延期します。これで、「Search-FindError…」のように競合するアドレスのみが指定された場合に、アドレスエラーでのアクセス違反が発生するパス、ソースdoeファイル、および行を簡単に見つけて正確にする方法がわかります。アドレスDelphiエラーでのアクセス違反は、次のように表示されます。
「モジュール<アプリケーション名>のアドレス<16進値>でのアクセス違反アドレス<16進値>の読み取り」
WindowsコンピュータのDelphiIDEでは、プログラムがデバッグ情報に準拠している場合、エラーの原因となったソースコードの行を見つけることができます。この問題の背後にある考えられる理由は、Delphiプログラムが作成されていないオブジェクトの使用である可能性があります。デバッガオプションウィンドウで[Delphi例外で停止]を有効にすると、EAccessViolationが発生したことを示すメッセージが表示される場合があります。 EAccessViolationは、無効なメモリアクセスエラーの例外クラスです。
エラーの背後にある理由とWindowsPCのアドレスDelphiエラーでのアクセス違反を修正する方法は?
1:存在しないオブジェクトを呼び出す
この問題は、Delphiが作成されていない、またはリリースされていないオブジェクトを使用しているために発生する可能性があります。アクセスするオブジェクトが最初に作成されるようにすることで、問題を修正できます。たとえば、テーブルが作成されていないデータモジュールにある場合、フォームのOnCreateイベントでテーブルを開くことができます。次のコードでは、削除されたイベントを呼び出した後、アドレスエラーでのアクセス違反が表示されます。
var b:TBitmap;
始める
b:= TBitmap.Create;
試す
// bオブジェクトの操作でいくつかのことを行います
ついに
b。無料;
終わり;
..。
// bがリリースされたため、アクセス違反エラーが表示されます
b.Canvas.TextOut(0,0、 ‘これはアクセス違反です’);
終わり;
2:存在しないAPIパラメータ
このエラーは、存在しないパラメータをWinAPI関数に渡そうとした場合に発生する可能性があります。 Win APIヘルプを参照して、このAPI関数呼び出しのパラメーター情報とパラメータータイプを確認することで、問題を修正できます。
3:Delphiをリリースさせます
オブジェクトが別のオブジェクトを所有している場合は、そのオブジェクトに削除作業を任せます。アプリケーションが終了すると、アプリケーションオブジェクトが解放され、すべてのフォームが解放されます。たとえば、プログラムの開始時に2つのフォームを自動的に作成する場合、次のコードにより、アドレスエラーでアクセス違反が発生します。
ユニットUnit1;
..。
unit2を使用します。
..。
プロシージャTForm1.Call_Form2
始める
Form2.ShowModal;
Form2.Free;
//アクセス違反エラーが表示されます
Form2.ShowModal;
終わり;
4:例外を強制終了します
一時的な例外オブジェクトを強制終了しないでください。例外を処理すると、例外オブジェクトが自動的に解放されます。例外オブジェクトを手動で解放すると、プログラムはそれを再度解放しようとし、アドレスエラーでのアクセス違反が表示されます。
ゼロ:= 0;
試す
ダミー:= 10 /ゼロ;
それ外
E:EZeroDivide do
MessageDlg( ‘0除数では実行できません!’、MtError、[mbOK]、0);
E.free.////アクセス違反エラーが表示されます
終わり;
5:空の文字列を取得します
気付いていない場合、空の文字列にはデータがありません。空の文字列を取得しようとすると、アドレスエラーでアクセス違反が発生する可能性があります。
var s:文字列;
始める
s:= ”;
s [1]:= ‘a’;
//アクセス違反エラーが表示されます
終わり;
6:ポインタを直接参照する
ポインタを間接的に参照する必要があります。そうしないと、ポインタアドレスが変更され、多くの場合、他のストレージユニットが破壊されます。
結論
この投稿は、アドレスエラーでのアクセス違反を修正する方法、Accessであなたを助けたと確信していますいくつかの簡単な手順/方法によるWindows10 / 8/7のアドレスDelphiエラーでの違反。 あなたはそうするために私たちの指示を読んでそれに従うことができます。 それで全部です。 提案や質問がある場合は、下のコメントボックスに書き込んでください。