Hi,
ich hab ein recht unangenehmes Problem: In meinem Projekt tritt auf meinem Laptop ab und zu eine Zugriffsverletzung auf, wenn die Verbindung per TIdTCPClientSocket nicht hergestellt werden kann. Das Laptop hat einen P4 2,8 mit Hyperthreading, ich verwende Threads um mich zu verbinden - eventuell liegt da ja das Problem. Auf meinem Haupt-PC tritt das Problem nicht auf. Die
Exception lautet folgendermaßen:
Code:
---------------------------
Benachrichtigung über Debugger-
Exception
---------------------------
Im Projekt
irc.exe ist eine
Exception der Klasse C0000005 aufgetreten. Meldung: 'Zugriffsverletzung bei 0x74db1abb: Lesen von Adresse 0x0105e818'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------
Mein code lautet folgendermaßen:
Delphi-Quellcode:
TDataThread =
class(TThread)
private
fSocket: TidTCPClient;
fForm: TStatusForm;
protected
procedure Execute;
override;
public
constructor Create(Socket: TidTCPClient; ff:TStatusForm);
end;
constructor TDataThread.Create(Socket: TidTCPClient; ff:TStatusForm);
begin
inherited Create(false);
fSocket:=Socket;
fForm:=ff;
FreeOnTerminate:=true;
end;
procedure TDataThread.Execute;
begin
while not terminated
do begin
TStatusForm(fForm).ConnectToServer('
',-1);
Terminate;
end;
end;
// ...
procedure TStatusForm.ConnectToServer(
name:
string; port:integer);
begin
try
ClientSocket.Connect;
except
ShowMessage('
Exception beim Connecten');
end;
end;
Die
Exception beim connecten wird ausgelöst, was auch nicht verwunderlich ist, da ich als server
localhost angegeben hab, aber kein Server läuft. Allerdings kommt wie gesagt beim Laptop ab dem 3. oder 4. Mal (unregelmäßig) eine
Exception in Riched20.dll oder die oben angegebene.. Halte ich allerdings für einen Folgefehler. Weiterhin sagt er mir ab und zu, dass eine Division durch Null ausgelöst wurde, was ja bei den JCL-Libs das Problem war AFAIK? Ich verwende JVCL 3.0 Beta 2 und JCL 2.10.
Falls mehr Infos benötigt werden, einfach fragen
Vielen Dank & cu