AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Run-Time Error 216 beim Beenden der Anwendung

Ein Thema von HStrohmaier · begonnen am 8. Aug 2008 · letzter Beitrag vom 8. Aug 2008
Antwort Antwort
HStrohmaier

Registriert seit: 8. Aug 2008
2 Beiträge
 
#1

Run-Time Error 216 beim Beenden der Anwendung

  Alt 8. Aug 2008, 11:30
Hallo!

Ich habe ein seltsames Phänomen auf einem meiner Dev-Systeme ((D6 Ent., UP2): Einige meiner Anwendungen melden beim Beenden einen Runtime-Error 216. Mit dem Debugger oder der Suche nach Laufzeitfehler komme ich nur auf (mir) nichtssagende Teile des Assembler-Codes im CPU-Fenster. Interessanterweise tritt dieser Fehler *nicht* auf, wenn ich die Anwendung vor dem Beenden minimiere und wieder herstelle oder alternativ irgendein anderes Fenster auf dem Desktop kurz anklicke und meine Anwendung wieder aktiviere. Ein automatisiertes Minimize in der DPR-Datei als letzte Anweisung vor den ganzen finalization-Abschnitten löst das Problem ebenfalls:

Delphi-Quellcode:
...
  Application.Run;
  Application.Minimize;
End;

Was auch noch hilft: im Debugger einen Breakpoint auf das "End;" setzen und zwei bis drei Sekunden warten und dann mit F9 weiterlaufen lassen. Schon geht es

Der Anwendung ist lediglich ein FromDestroy-Ereignis zugeordnet, welches aber keinen Einfluß auf den beschriebenen Effekt zu haben scheint. Die von mir verwendeten 3rd-Party-Bibliotheken sind u.a. IP*Works!, NTSet, CoolTrayIcon, u.a. und ich binde diverse ActiveX-Controls ein. ShareMem hat keinen Einfluß und schrittweises Entfernen von Code macht mich wahnsinnig, weil ich zwar Code entfernen kann, bis der Effekt nicht mehr auftritt. Aber wenn ich dann den letzten Schritt wieder rückgängig mache, tritt das Problem oftmals gar nicht auf. Ich muß dann wieder mehrere Schritte einmal zurück und kann den Fehler trotz systematischer Suche nicht richtig eingrenzen.

Viele Grüße

-=HS=-
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Run-Time Error 216 beim Beenden der Anwendung

  Alt 8. Aug 2008, 11:36
Du kannst in der Hilfe nachgucken, was Laufzeitfehler 216 ist. Soweit ich mich erinner, ist das eine AccessViolation. Du scheinst auf Speicher zuzugreifen der ungültig ist. Das muss nicht unbedingt an der Stelle sein an der der Debugger stehen bleibt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
HStrohmaier

Registriert seit: 8. Aug 2008
2 Beiträge
 
#3

Re: Run-Time Error 216 beim Beenden der Anwendung

  Alt 8. Aug 2008, 11:50
Hallo Luckie,

Zitat von Luckie:
Du kannst in der Hilfe nachgucken, was Laufzeitfehler 216 ist. Soweit ich mich erinner, ist das eine AccessViolation. Du scheinst auf Speicher zuzugreifen der ungültig ist. Das muss nicht unbedingt an der Stelle sein an der der Debugger stehen bleibt.
das mit der Hilfe und dem Laufzeitfehler hatte ich schon geprüft. Leider ist mir nicht klar, wieso ich plötzlich nicht mehr auf diesen Speicher zugreife, wenn ich auf dem Desktop mal eben auf eine andere Anwendung klicke und dann wieder auf mein Programm - denn dann tritt der Fehler nicht mehr auf. Und einen Eventhandler, der auf die Aktivierung der Anwendung reagiert, habe ich nicht implementiert. Das macht alles nur die VCL.

Noch eine Idee?

-=HS=-
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Run-Time Error 216 beim Beenden der Anwendung

  Alt 8. Aug 2008, 12:13
Hallo HS,

Luckies Vorschlag ist garnicht soweit hergeholt, weil der Teufel ist ein Eichhörnchen.
Ich empfehle Dir die Finalization-Abschnitte zur Überprüfung.

Übrigens Deine Einwände sind durchaus berechtigt. Nur was Du als Fehler benennst sind vom System erkannte Fehlersituationen. Die erst durch Programmfehler hervorgerufen werden KÖNNEN aber nicht müssen. Nimm es als Hinweis, daß irgendwo bei der Programmbeendigung etwas morsch ist.

Gruß
K-H
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Run-Time Error 216 beim Beenden der Anwendung

  Alt 8. Aug 2008, 12:20
Wenn mein löchriges Gedächtnis mich nicht täuscht, hatten wir so etwas erst neulich im Zusammenhang mit Komponenten einer bekannten Sammlung (ob Indy oder Jedi, weiß ich nicht mehr). Schuld war auch hier der finalization-Abschnitt einer verwendeten Komponente. Da hilft wohl nur Durchforsten ("In Dateien suchen").
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
nahpets
(Gast)

n/a Beiträge
 
#6

Re: Run-Time Error 216 beim Beenden der Anwendung

  Alt 8. Aug 2008, 13:12
Hallo,

blöde Frage, ist es ein Timingproblem. Alles was Du zusätzlich machst, dauert Zeit, Klicken, Minimieren... .
Es könnte sein, dass da die Reihenfolge der Freigabe von was auch immer nicht stimmt und deshalb irgendwer noch Speicher braucht, den jemand anders schon freigegeben hat. (Erstellungsreihenfolge?)
Gibt es mehrere Formulare, die eventuell gegenseitig auf Komponenten zugreifen, Werte abfragen... ? Da ist mir sowas auch schon mal passiert.

Hilft am Ende eventuell ein Sleep(1000)? Das würde diese Vermutung bestätigen, wäre jedoch keine optimale Lösung.
p80286 und DeddyH liegen da mit ihrer Vermutung wahrscheinlich sehr nah an dem Problem.

Stephan
  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 14:20 Uhr.
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