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 Luckie
Luckie

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

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
 
#2

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
 
#3

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
 
#4

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
 
#5

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
CorVu5

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

AW: Unit in Klasse übertragen -> Access Violation

  Alt 11. Jun 2010, 21:24
Ich glaube, ich beginne zu verstehen.
Socks5Server ist wie im Snippet gezeigt eine Methode der Klasse.
Folglich kann CreateThread gar nicht funktionieren, weil ein Methodenzeiger etwas anderes ist als ein Funktionszeiger und immer noch ein weiterer Parameter übergeben wird.
Nun könnte ich natürlich Socks5Server als normale Prozedur deklarieren, das Problem dabei ist nur, dass ich dann selbstverständlich nicht mehr auf die Propertys der Klasse zugreifen kann ("Fworking" zum Beispiel). Nun könnte ich natürlich irgendwelche Wrapperfunktionen schreiben, aber das würde wohl kaum dem Gedanken der objektorientierten Programmierung entsprechen.
Gibt es keine einfache Möglichkeit, die Methode wie eine normale Funktion mit Beginthread zu starten?
Oder muss ich per Inline ASM den zusätzlichen Parameter pushen?
Das Leben ist wie ein Strand...und dann stirbt man.
  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 08:21 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