AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Unit in Klasse übertragen -> Access Violation
Thema durchsuchen
Ansicht
Themen-Optionen

Unit in Klasse übertragen -> Access Violation

Ein Thema von CorVu5 · begonnen am 6. Jun 2010 · letzter Beitrag vom 11. Jun 2010
Antwort Antwort
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

AW: Unit in Klasse übertragen -> Access Violation

  Alt 6. Jun 2010, 22:13
Im Dispatcher selbst kannst du nicht viel falsch machen. Hat du das Dispatcher Objekt denn überhaupt mit Create erzeugt? Manchmal sinds die einfachen Sachen, die man vergisst In der Unit selbst wird auch nichts großartig gemacht, was vor oder nach dem OnClientConnected Event eine AV auslösen könnte.
  Mit Zitat antworten Zitat
CorVu5

Registriert seit: 31. Dez 2007
26 Beiträge
 
Delphi 7 Professional
 
#2

AW: Unit in Klasse übertragen -> Access Violation

  Alt 6. Jun 2010, 22:46
Du hast Recht, das Problem schein wo anders zu liegen.
Möglicherweise irgendeine Art von Threadproblem:
Beim Debuggen fiel mir folgendes auf:
CreateThread(nil, 0, @TSocks5Proxy.Socks5Server, Pointer(servsocket), 0, TId); Dabei ist servsocket ein gültiger Pointer, bind und listen werden ordnungsgemäß ausgeführt.
In der procedure Socks5Server hat servsocket jedoch plötzlich einen ganz anderen Wert (immer irgendwas über 4000000), was dann natürlich kein gültiger Socket mehr ist und accept ohnehin fehlschlagen lässt.
Also liegt es am Threading?
Was muss ich spezielles beim Threading mit Objekten, bzw. deren Events und Methoden wissen?
Das Leben ist wie ein Strand...und dann stirbt man.

Geändert von CorVu5 ( 6. Jun 2010 um 23:10 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

AW: Unit in Klasse übertragen -> Access Violation

  Alt 6. Jun 2010, 22:53
Benutze nicht die API-Funktion CreateThread direkt, sondern den Delphi Wrapper BeginThread, da BeginThread dafür sorgt, dass der Heap threadsafe ist.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
CorVu5

Registriert seit: 31. Dez 2007
26 Beiträge
 
Delphi 7 Professional
 
#4

AW: Unit in Klasse übertragen -> Access Violation

  Alt 6. Jun 2010, 23:07
Gesagt, getan.
Leider immer noch AV, nur dass jetzt die Exceptions offenbar greifen.
"Error 5: Zugriff verweigert"

//Edit: Die AV tritt jetzt schon vorher, bei "while FWorking do" auf, irgendwie scheinen die Eigenschaften des Objekts vom Thread aus nicht zugänglich zu sein? :-/
Das Leben ist wie ein Strand...und dann stirbt man.

Geändert von CorVu5 ( 6. Jun 2010 um 23:12 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Unit in Klasse übertragen -> Access Violation

  Alt 7. Jun 2010, 00:27
Na bitte dann funktioniert doch alles. Jetzt musst du nur noch rausbekommen, warum dir die nötigen Rechte fehlen. Was passiert, wenn du das Programm als Administrator startest?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
CorVu5

Registriert seit: 31. Dez 2007
26 Beiträge
 
Delphi 7 Professional
 
#6

AW: Unit in Klasse übertragen -> Access Violation

  Alt 7. Jun 2010, 13:11
Ändert leider überhaupt nichts.
Ich bin wirklich ratlos, vor Allem, da ich mich wie gesagt mit OOP noch nicht besonders gut auskenne.
Das Leben ist wie ein Strand...und dann stirbt man.
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#7

AW: Unit in Klasse übertragen -> Access Violation

  Alt 7. Jun 2010, 18:46
Also entweder du deklarierst die procedure Socket5Server als stdcall oder verwendest BeginThread anstatt CreateThread.
Außerdem geht ich mal davon aus, dass dies KEINE Methode einer Klasse ist sondern wie im NoPaste eine einfache Prozedure ist. Es darf keine Methode sein, weil bei einer Methode IMMER noch ein zusätzlicher Parameter verwendet wird (self).
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz