Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Runtimeerror 216 at 00404856 (https://www.delphipraxis.net/164231-runtimeerror-216-00404856-a.html)

p80286 3. Nov 2011 15:15

AW: Runtimeerror 216 at 00404856
 
Zitat:

Zitat von Bummi (Beitrag 1134319)
Der Result ist zwar gegf. ein zufälliger Stackwert, ansonsten sieht das nicht böse aus....

Hier hat's bei mir geklingelt. Könnte es sein, daß du irgendwo über Array-Grenzen schreibst? Oder sonst irgendwelche Dyn. Strukturen zerschossen werden?
Jedesmal wenn beim Programmende ein Fehler aufgetaucht ist, dann war es meist soetwas.

(was sagen Beireichsprüfung und Co ?)

Gruß
K-H

Uwe Raabe 3. Nov 2011 15:26

AW: Runtimeerror 216 at 00404856
 
Ich würde hier zunächst erstmal madExcept einsetzen, um den Aufrufstack zur Laufzeit zu bekommen.

CCRDude 3. Nov 2011 16:26

AW: Runtimeerror 216 at 00404856
 
madExcept fängt aber nur, wie der Name schon sagt, Exceptions ab - keine Runtime Errors, zu deren Zeitpunkt das Exception Handling noch gar nicht bzw. schon nicht mehr geladen ist, oder?

Uwe Raabe 3. Nov 2011 17:16

AW: Runtimeerror 216 at 00404856
 
Zitat:

Zitat von CCRDude (Beitrag 1134340)
madExcept fängt aber nur, wie der Name schon sagt, Exceptions ab - keine Runtime Errors, zu deren Zeitpunkt das Exception Handling noch gar nicht bzw. schon nicht mehr geladen ist, oder?

Möglich - da ich madExcept aber immer in meinen Programmen drin habe, wäre es kein Mehraufwand. Einen Versuch ist es allemal wert.

sh17 3. Nov 2011 19:41

AW: Runtimeerror 216 at 00404856
 
Runtimeerror 216 ist meist der Hinweis darauf, das etwas freigegeben wird, was schon nicht mehr existiert.

roadrunner-S51 4. Nov 2011 06:51

AW: Runtimeerror 216 at 00404856
 
Guten Morgen!
Erstmal danke für die Antworten und Anregungen.

Weitere Recherchen haben ergeben, dass es sich um ein Problem mit einem Thread handelt. Wenn ich das Programm beende, ohne den Thread gestartet zu haben, habe ich keinen RuntimeError.
Wie kann ich prüfen, ob der Thread korrekt beendet wurde?

Luckie 4. Nov 2011 07:38

AW: Runtimeerror 216 at 00404856
 
Wie startest du denn den Thread? Benutzt du die API Funktionen oder deren Kapselung in der Delphi Thread-Klasse?

roadrunner-S51 4. Nov 2011 07:50

AW: Runtimeerror 216 at 00404856
 
Also den Thread rufe ich so auf:


Delphi-Quellcode:
    Workthread := tmeinthread.create(true);   // Thread erzeugen
    Workthread.OnTerminate := EndeMesslauf;   // bei Ende diese Funktion aufrufen
    Workthread.FreeOnTerminate := true;      
    Workthread.Resume;

Bummi 4. Nov 2011 07:55

AW: Runtimeerror 216 at 00404856
 
Delphi-Quellcode:
 Workthread.OnTerminate := EndeMesslauf;
wenn der Thread hier reinläuft und auf etwas zugegriffen wird was bereits freigegeben wurde hättest Du Deinen Fehler....

Bernhard Geyer 4. Nov 2011 07:56

AW: Runtimeerror 216 at 00404856
 
Könnte es sein das die Methode EndeMesslauf in einer Klasse liegt die schon abgeräumt ist?


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:54 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz