Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Exe aufrufen ? (https://www.delphipraxis.net/104101-exe-aufrufen.html)

Nuclear-Ping 27. Nov 2007 15:08

Re: Exe aufrufen ?
 
Und du bist der Ursache, warum er nach "3 Tagen" immer abschmiert, noch nie auf den Grund gegangen?

pronny31 27. Nov 2007 15:22

Re: Exe aufrufen ?
 
Ich lese überall das durch das Beenden eines Programms Speicherlecks wieder gelöscht werden !

Popov 27. Nov 2007 15:23

Re: Exe aufrufen ?
 
Zitat:

Zitat von pronny31
Ich habe folgendes Problem :

Wie groß ist das Programm? Ist das eine richtige Applikation oder eher ein Tool?

Arbeitest du mit Objekten?

Hast du irgendwelche Konstruktionen verwendet wo du mit einem Objekt über mehrere Prozeduren arbeitest? Bei sowas verliert man gelegentlich den Überblick.

Arbeitest zufällig mit Bitmaps? Ich hatte mal ein sonderbares Speicherleck. Ich konnte auch im Taskmanager das Speicherloch sehen, denn das Programm wurde in jeder Sekunde größer. Das Schlimme, ich war mir keiner Schuld bewußt, da ich wußte alles wieder korrekt freigegeben zu haben. Trotzdem habe ich alles nochmal grob Überprüfung und keinen Fehler gefunden. Die Rätsels Lösung, ich war damals etwas faul beim programmieren und benutze oft den Autovervollständiger. Ich war damals so faul, daß ich den sogar beim Free benutzt habe. Objekt, Punkt, STRG+Leerzeichen, FR eingeben, Enter drücken. Das war ein Automatismus beim Autovervollständigen. Im Kopf hatte ich die nötigen Kürzel für vieles. Das Problem ist aber, daß FR und Enter in der Regel Free ergeben, aber nicht bei TBitmap, dort bekommt man FreeImage raus. Bei der groben Suche ist mir das nichtmal aufgefallen. Sogar bei genauen Suche brauchte ich zwei Sekunden bis ich es bemerkt habe. Ich guckte die Zeile an, hatte sofort das Gefühl, daß da irgendetwas nicht stimmt, wußte aber im ersten Moment nicht was. Irgendwie war Free da, aber irgendwas mit der Länge stimmte nicht.

Man kann also auch Speicherlecks haben, auch wenn man sich dessen nicht bewußt ist.

Seit der Zeit habe ich mit übrigens den Autovervollständiger abgewöhnt und benutze den nur noch selten.

Nuclear-Ping 27. Nov 2007 15:36

Re: Exe aufrufen ?
 
Zitat:

Zitat von pronny31
Ich lese überall das durch das Beenden eines Programms Speicherlecks wieder gelöscht werden !

Werden sie auch. Nur das hat rein garnichts mit deiner Auslagerungsdatei zu tun.

Und wenn du Speicherlecks hast, besorg dir FastMM oder MemChk, geh diesen auf den Grund und beseitige sie. ;)

pronny31 27. Nov 2007 15:53

Re: Exe aufrufen ?
 
Ok ich werde versuchen diese Speicherlecks zu finden und sie beseitigen !
Danke für eure Hilfe !

Luckie 27. Nov 2007 16:35

Re: Exe aufrufen ?
 
Zitat:

Zitat von pronny31
Beendet wird das Programm mit TerminateProcess.....

Dazu sage ich mal nichts mehr.

Warum rufst du nicht Close auf?

Mit dem Beenden eines Programmes werden keine Speicherlecks "gelöscht". Ich möchte ja nicht wissen, was wäre, wenn du Arzt wärst: "Sie haben schmerzen? Gut, ich hole schon mal die Todesspritze. Da nach sind alle Schmerzen weg. Ihre Mutter kann ja einen neuen Sohn erzeugen." :wall:

Such das Speicherleck. Hinweise hat dir Popov schon gegeben:
- Reservierter Speicher, der nicht freigegeben wird
- Selbst erstellte Objekte, die nicht frei gegeben werden
- ...

Nuclear-Ping 27. Nov 2007 17:24

Re: Exe aufrufen ?
 
Ich denke er meint, dass das zweite Programm das erste Programm per TerminateProcess "abschießt".

Und Windows räumt afaik den Speicher hinter einem Programm schon auf, wenn es beendet wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:13 Uhr.
Seite 2 von 2     12   

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