Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Die Anweisung in [...] verwies auf Arbeitsspeicher bei [...] (https://www.delphipraxis.net/216284-die-anweisung-%5B-%5D-verwies-auf-arbeitsspeicher-bei-%5B-%5D.html)

AuronTLG 5. Dez 2024 09:03

AW: Die Anweisung in [...] verwies auf Arbeitsspeicher bei [...]
 
So, ich habe das Problem mehr oder weniger gefunden und behoben.
Im Prinzip haben alle hier im Thread mit ihren Anmerkungen Recht:
Das fragliche Programm ist ziemlich groß, hat Altlasten und der gerade der DPR-Code Recht ist teilweise sehr alt und, wie ich nun feststelle, voller kleiner Unsauberkeiten, die jetzt wohl übergeschwappt sind.
Der große und entscheidende Übeltäter war eine Form, die schon vor der Anmeldung aus technischen Gründen kreiert und dann nicht mehr manuell entsorgt wurde, womit ihre Entsorgung beim Programmende automatisch stattfand. Das war anscheinend schon lange so drin, hatte aber bisher keine Probleme verursacht, weswegen es nicht auffiel.
Ich werde es nochmal im Detail untersuchen, aber gehe momentan stark davon aus, dass meine Änderungen zur Vorversion prinzipiell nichts direkt damit zu tun hatten, sondern beim zugrundeliegenden Problem einfach irgendein technischer Schwellenwert überschritten wurde und es rein theoretisch auch schon viel früher hätte knallen können.

Vielen Dank für Hilfe, ich gehe dann wohl erstmal paar DPRs säubern, nicht dass es noch mehr solcher lustigen Überraschungen gibt.

jaenicke 5. Dez 2024 11:05

AW: Die Anweisung in [...] verwies auf Arbeitsspeicher bei [...]
 
Zitat:

Zitat von AuronTLG (Beitrag 1543906)
Der große und entscheidende Übeltäter war eine Form, die schon vor der Anmeldung aus technischen Gründen kreiert und dann nicht mehr manuell entsorgt wurde, womit ihre Entsorgung beim Programmende automatisch stattfand.

Gib einfach alle Formulare, die mit Application als Owner erzeugt wurden, vor dem end des Projektquelltextes mit Application.DestroyComponents frei.

Aber dann muss das Formular etwas machen, das nicht mit der GUI zu tun hat, worauf auch "aus technischen Gründen" hindeutet. Da wäre dann ggf. eine Restrukturierung sinnvoll. Zumindest sollten z.B. keine DLLs oder Netzwerk- oder Datenbankverbindungen oder ähnliches erst bei der Freigabe entladen werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:51 Uhr.
Seite 3 von 3     123   

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