![]() |
EInvalidPointer beim Schließen
Hi,
ich hab jetzt jeden thread durch, den ich per Suche gefunden habe, aber bin noch nicht weiter. Immer wenn ich mein Programm schließe, bekomme ich eine EInvalidPointer-Meldung, das CPU-Fenster sagt mir, dass der Fehler irgendwo in FreeMem liegt (die ich übrigens nicht manuell aufrufe). Grob gesagt habe ich nur eine Klasse und eine globale (Ja, ich weiß) Variable die als dynamisches array dieser Klasse definiert ist, also
Delphi-Quellcode:
Die Hauptunit hat nichts besonderes. Ich definiere auch weder etwas in der Art von OnClose/onDestroy noch einen eigenen Destruktor der Klasse - lediglich den Konstruktor (und eigene Prozeduren).
type
TFoo = class(TObject) ... end; var Bla: array of TFoo; Weiß jemand wo der Fehler liegen kann? Ich weiß nicht, wo der da auf einen ungültigen Pointer zugreifen soll, wo ich doch garnichts selber mache :gruebel: air |
Re: EInvalidPointer beim Schließen
Hallo erstmal... Ich glaube ich habe ein ähnliches Problem...Zumindest bekomme ich auch eine Zugriffsverletzung auf eine Speicheradresse, beim Beenden...naja kannst dir ja mal den thread anschauen
![]() |
Re: EInvalidPointer beim Schließen
Ja, die letzte Antwort gibt mir zu denken, da dort von dynamiscehn Arrays geredet wird - und ich benutze ja eines.
Aber ich hab schon alles mögliche im Formdestroy versucht um das Array zu löschen oder sonstwas, aber ich kriegs nicht hin :gruebel: air |
Re: EInvalidPointer beim Schließen
Zitat:
in einem anderen Forum hab ich gelesen, dass man im ersten unit (quasi die *.dpr) als ersten eintrag in den uses das "ShareMem" eintragen soll. Hab ich gemacht und der Fehler kam nicht mehr. Versuchen kannst du es ja mal... |
Re: EInvalidPointer beim Schließen
Ja, hatte ich auch gelesen schon, hatte es aber in die Nebenunit gemacht.
Werds mal eben probieren, danke. air Edit: Fehler besteht weiterhin... |
Re: EInvalidPointer beim Schließen
im FormDestroy einfach mal reinschreiben: Bla:=nil;
Damit wird der Zeiger auf das dyn. Array gelöscht. |
Re: EInvalidPointer beim Schließen
Naja, selbst FreeAndNil hilft ja nichts - die Methode übrigens genauso wenig :(
air |
Re: EInvalidPointer beim Schließen
*PUSH* Problem noch immer bestehend ;)
|
Re: EInvalidPointer beim Schließen
Fügst du die Instanzen deines dynamischen Arrays auch noch irgendwo anders ein bzw. weist du es noch irgendwo anders zu während der Laufzeit deines Programmes?
Schonmal den RangeCheck angeschaltet und die Overflow Detection? (beides in den Projektoptionen->Compilereinstellungen; danach das Projekt komplett neu erstellen) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:06 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