Was ist “Zugriffsverletzung bei Adress-Delphi-Fehler” in Windows 10?
In diesem Artikel werden wir diskutieren, wie man Zugriffsverletzung bei Adressfehler behebt, Zugriffsverletzung bei Adress-Delphi-Fehler in Windows 10/8/7. Sie werden mit einfachen Schritten/Methoden angeleitet, um das Problem zu lösen. Beginnen wir die Diskussion.
„Delphi“: Delphi ist eine Software, die den Delphi-Dialekt der Object Pascal-Programmiersprache verwendet und eine integrierte Entwicklungsumgebung (IDE) für die schnelle Anwendungsentwicklung von Desktop-, Mobil-, Web- und Konsolensoftware bietet, die derzeit von Embarcadero Technologies entwickelt und gewartet wird. Der Complier von Delphi generiert nativen Code für Microsoft Windows-, MacOS-, iOS-, Android- und Linux-basierte Geräte.
Mehrere Delphi-Benutzer berichteten jedoch, dass sie beim Schreiben des Programms und beim Testen und anschließenden Senden überall hin mit „Access Violation at address Delphi error“ konfrontiert waren. Dieser Fehler zeigt an, wenn Sie Delphi in einer Softwareentwicklung verwenden, wenn das Programm das getestete Programm nicht senden kann. Sie könnten erwägen, Ihr Programm mit der Kompilierungsanweisung {$ D} zu kompilieren – Delphi kann eine Image-Datei erstellen, die hilft, den Quellcode für Zugriffsverletzungsfehler zu finden.
Der Projektoptionen-Dialog bietet Ihnen die Möglichkeit, alles Notwendige anzugeben. Bei einer Unit-Datei werden die Debug-Informationen zusammen mit dem Objektcode der Unit in der Unit-Datei aufgezeichnet. Zugriffsverletzung bei Adressfehler tritt normalerweise mitten in Ihrer Arbeit an Delphi auf und veranlasst Sie, die Lösung des Problems zu verschieben. Jetzt wissen Sie, wie Sie den Pfad, die Quell-Doe-Datei und die Zeile, in der der Zugriffsverletzungsfehler bei der Adresse auftritt, leicht und genau finden können, wenn nur eine widersprüchliche Adresse wie “Suchen-Suchen-Fehler …” angegeben wird. Zugriffsverletzung an Adresse Delphi-Fehler wird auf folgende oder ähnliche Weise angezeigt.
„Zugriffsverletzung auf Adresse <Hex-Wert> im Modul <Anwendungsname> Lesen von Adresse <Hex-Wert>“
Wenn Ihr Programm in der Delphi-IDE auf Ihrem Windows-Computer mit Debug-Informationen übereinstimmt, können Sie die Quellcodezeile finden, die den Fehler verursacht hat. Der mögliche Grund für das Problem kann ein Delphi-Programm sein, das die Verwendung eines nicht erstellten Objekts ist. Wenn Sie „Stop on Delphi Exceptions“ im Debugger-Optionsfenster aktivieren, wird möglicherweise die Meldung angezeigt, dass EAccessViolation aufgetreten ist. Die EAccessViolation ist die Ausnahmeklasse für ungültige Speicherzugriffsfehler.
Grund für Fehler und wie behebt man Zugriffsverletzungen bei der Adressierung des Delphi-Fehlers in Windows-PC?
1: Rufen Sie ein nicht vorhandenes Objekt auf
Dieses Problem kann auftreten, weil Delphi ein Objekt verwendet, das nicht erstellt oder freigegeben wurde. Sie können das Problem beheben, indem Sie sicherstellen, dass alle Objekte, auf die Sie zugreifen, zuerst erstellt werden. Wenn sich beispielsweise eine Tabelle in einem nicht erstellten Datenmodul befindet, können Sie die Tabelle im OnCreate-Ereignis des Formulars öffnen. Im folgenden Code wird nach dem Aufrufen eines gelöschten Ereignisses Access Violation at address error angezeigt:
var b:TBitmap;
Start
b:=TBitmap.Erstellen;
Versuchen
//Machen Sie einige Dinge mit dem b-Objekt Operation
endlich
b.frei;
Ende;
…
//Da b freigegeben wurde, wird ein Zugriffsverletzungsfehler angezeigt
b.Canvas.TextOut (0,0, ‘Dies ist eine Zugriffsverletzung’);
Ende;
2: Nicht vorhandene API-Parameter
Dieser Fehler kann auftreten, wenn Sie versuchen, nicht vorhandene Parameter an die Win-API-Funktion zu übergeben. Sie können das Problem beheben, indem Sie die Win-API-Hilfe konsultieren, um die Parameterinformationen und den Parametertyp dieses API-Funktionsaufrufs anzuzeigen.
3: Lassen Sie Delphi freigeben
Wenn ein Objekt ein anderes Objekt besitzt, lassen Sie es die Löscharbeit für Sie erledigen. Wenn die Anwendung endet, gibt sie das Anwendungsobjekt frei, das alle Formulare freigibt. Wenn Sie beispielsweise zu Beginn des Programms automatisch zwei Formulare erstellen, führt der folgende Code zu Zugriffsverletzung bei Adressfehler.
Einheit Einheit1;
…
verwendet unit2;
…
Prozedur TForm1.Call_Form2
Start
Form2.ShowModal;
Form2.Free;
//Zugriffsverletzungsfehler werden angezeigt
Form2.ShowModal;
Ende;
4: Ausnahmen töten
Sie sollten niemals temporäre Ausnahmeobjekte beenden. Bei der Behandlung einer Ausnahme wird das Ausnahmeobjekt automatisch freigegeben. Wenn Sie das Ausnahmeobjekt manuell freigeben, versucht das Programm, es erneut freizugeben, dann wird Zugriffsverletzung bei Adressfehler angezeigt.
Null:=0;
Versuchen
Dummy:= 10/Null;
außer
auf E: EZeroDivide do
MessageDlg (‘kann nicht mit 0 Divisor durchgeführt werden! ‘, MtError, [mbOK], 0);
E.free.////Fehler bei Zugriffsverletzung wird angezeigt
Ende;
5: Rufen Sie eine leere Zeichenfolge ab
Wenn Sie sich nicht bewusst sind, enthält eine leere Zeichenfolge keine Daten, und wenn Sie versuchen, eine leere Zeichenfolge abzurufen, wird Zugriffsverletzung bei Adressfehler angezeigt.
var s: Zeichenfolge;
Start
s: = ”;
s [1]: = ‘a’;
//Zugriffsverletzung Der Fehler wird angezeigt
Ende;
6: Direkt auf Zeiger verweisen
Sie müssen auf Zeiger indirekt verweisen, sonst ändern Sie die Zeigeradresse und viele andere Speichereinheiten zerstören.
Fazit
Ich bin mir sicher, dass dieser Beitrag Ihnen geholfen hat, Zugriffsverletzungen bei Adressfehlern zu beheben, Access Verstoß gegen den Delphi-Fehler in Windows 10/8/7 mit mehreren einfachen Schritten/Methoden. Sie können unsere Anweisungen dazu lesen und befolgen. Das ist alles. Bei Anregungen oder Fragen schreiben Sie bitte unten in das Kommentarfeld.