AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Exception EAccessviolation Error

Exception EAccessviolation Error

Ein Thema von Punica · begonnen am 27. Jul 2011 · letzter Beitrag vom 29. Jul 2011
Antwort Antwort
Punica

Registriert seit: 17. Nov 2010
14 Beiträge
 
#1

Exception EAccessviolation Error

  Alt 27. Jul 2011, 21:47
Guten Tag,

ich bekomme folgende Meldung direkt beim Start meiner Console application.

Code:
---------------------------
Application Error
---------------------------
Exception EAccessViolation in module Project1.exe at 0001D1B8.

Access violation at address 0041D1B8 in module 'Project1.exe'. Read of address 00000118.


---------------------------
OK  
---------------------------
hier der Delphi Code

Delphi-Quellcode:
program Project1;

uses
  SysUtils,
  classes,
  idhttp,
  windows,
  IdBaseComponent,
  IdComponent,
  IdTCPConnection,
  IdTCPClient;

var
postdata : tstringlist;
FHTTP: TIDHTTP;

begin

 postdata := tstringlist.Create;
 postdata.Add('a=test1');
 postdata.Add('b=test2');
 postdata.Add('c=test3');
 FHTTP.Post('http://server.de/test.php',postdata);

end.
Der Fehler kommt immer in der letzten Zeile (hier FHTTP.Post..)

Was kann der Fehler sein?

Google hat nichts geholfen.

Mfg
  Mit Zitat antworten Zitat
TheReaper

Registriert seit: 27. Feb 2003
Ort: chemnitz
90 Beiträge
 
Delphi 2005 Personal
 
#2

AW: Exception EAccessviolation Error

  Alt 27. Jul 2011, 22:07
FHTTP ist ja auch nicht erstellt. Kein wunder das es kracht.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
36.308 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Exception EAccessviolation Error

  Alt 27. Jul 2011, 22:41
Google: Delphi "Access violation at address" "in module" "Read of address"

Auch hier im Forum findet man "zuviele" Threads, bezüglich "Zugriffsverletzung" und "Read of address 0000xxxx".
0 = nil = irgendwas existiert nicht

Und zum Glück werden globale Variablen automatisch mit 0/nil initialisiert.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Punica

Registriert seit: 17. Nov 2010
14 Beiträge
 
#4

AW: Exception EAccessviolation Error

  Alt 28. Jul 2011, 18:54
FHTTP ist ja auch nicht erstellt. Kein wunder das es kracht.
Das verstehe ich nicht genau.

Delphi-Quellcode:
var
postdata : tstringlist;
FHTTP: TIDHTTP;
@himitsu

ich habe schon gegoogelt leider hat mir ads nicht weitergeholfen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
36.308 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Exception EAccessviolation Error

  Alt 28. Jul 2011, 19:14
Das verstehe ich nicht genau.
Delphi-Quellcode:
postdata : tstringlist;
FHTTP: TIDHTTP;
Das sind nur die variablen.

Hier postdata := tstringlist.Create; hast du die TStringList erstellt und an postdata zugewiesen.
Aber nirgendwo wird eine TIDHTTP-Instanz erstellt und an FHTTP übergeben.

PS: Du gibst auch nirgendwo die erstellten Instanzen wieder frei.
Delphi-Quellcode:
postdata.Free;
FHTTP.Free;
Wenn man etwas erstellt, dann muß man es auch wieder freigeben, es sei denn man beauftragt jemand anderes dieses zu tun (z.B. siehe Owner, welchen man manchmal angeben kann)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.061 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Exception EAccessviolation Error

  Alt 29. Jul 2011, 09:38
Also muss das etwa so aussehen:
Delphi-Quellcode:
begin
 FHTTP := TIDHTTP.Create(nil);
 try
   postdata := tstringlist.Create;
   try
     postdata.Add('a=test1');
     postdata.Add('b=test2');
     postdata.Add('c=test3');
     FHTTP.Post('http://server.de/test.php',postdata);
   finally
     postdata.Free;
   end;
 finally
   FHTTP.Free;
 end;
end.
(Ob das jetzt alles so stimmt, weiß ich nicht, da ich die Indy-Komponenten nicht aus dem Kopf beherrsche)
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#7

AW: Exception EAccessviolation Error

  Alt 29. Jul 2011, 11:36
(Ob das jetzt alles so stimmt, weiß ich nicht, da ich die Indy-Komponenten nicht aus dem Kopf beherrsche)
Hehe, ne so wird das höchstwahrscheinlich nichts =)
- Kein ContentType; der Server weiß überhaupt nicht in welchem Format die Parameter ankommen
- Parameter in einer TStringList führt zu Problemen mit Zeilenumbrüchen und zu Encodingproblemen mit UTF-8 Webseiten


Hier mal ein Basis Beispiel bei einer ISO-8859-X Webseite:
Delphi-Quellcode:
begin
  FHTTP := TIDHTTP.Create(nil);
  try
    postdata := TStringStream.Create('');
    try
      postdata.WriteString('a=test1&');
      postdata.WriteString('b=test2&');
      postdata.WriteString('c=test3&');

      FHTTP.Request.ContentType := 'application/x-www-form-urlencoded';
      FHTTP.Post('http://server.de/test.php', postdata);
    finally
      postdata.Free;
    end;
  finally
    FHTTP.Free;
  end;
end.
Ich werde auch nicht Müde um auf mein Tutorial zu verlinken
http://www.delphipraxis.net/160152-i...protokoll.html
Sebastian

Geändert von geskill (29. Jul 2011 um 11:40 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf