AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Memory Leak nach Zuweisung eines Resourcestream

Memory Leak nach Zuweisung eines Resourcestream

Ein Thema von Peter-Pascal · begonnen am 4. Jun 2022 · letzter Beitrag vom 14. Jun 2022
Antwort Antwort
Peter-Pascal

Registriert seit: 18. Feb 2007
Ort: 32139 Spenge
200 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Memory Leak nach Zuweisung eines Resourcestream

  Alt 4. Jun 2022, 12:12
ja, von Datei ist eine Möglichkeit und wenn man nicht möchte, dass der User die Dateien selber nutzt, wäre vielleicht eine verschlüsselte Zip-Datei eine Möglichkeit. ZIP klingt gut.
Wird das Programm so nicht langsam?

Ich frage mich gerade, wie machen das eigentlich Spieleprogrammierer? Viele Texturen sind schließlich nachwievor Bilder.

Du hast recht Thomas, es kommt tatsächlich auf die Menge an. Möglicherweise nutzen Spieleprogrammierer wohl eine SQLite Datenbank.

Wie mache ich eine Reccourcen-DLL?

Wie so oft, es kommt wohl auf den Einzelfall an.

Danke TurboMagic und Thomas
Peter Niemeier

Geändert von Peter-Pascal ( 4. Jun 2022 um 12:16 Uhr)
  Mit Zitat antworten Zitat
mytbo

Registriert seit: 8. Jan 2007
482 Beiträge
 
#2

AW: Memory Leak nach Zuweisung eines Resourcestream

  Alt 4. Jun 2022, 12:24
Wird das Programm so nicht langsam?
Was ist für dich schnell? Du kannst dir hier zur Orientierung ein paar Werte anschauen. Mit einem weniger sicheren Algorithmus ist es noch viel schneller.

Infos zum Thema "Resource-DLL" findest du hier im Forum.

Bis bald...
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.398 Beiträge
 
Delphi 12 Athens
 
#3

AW: Memory Leak nach Zuweisung eines Resourcestream

  Alt 4. Jun 2022, 12:35
wie:

eine leere DLL erstellen
und da deine Ressourcen rein

Manuell über eigene RES, bzw. RC, via {$R ...} , bzw. {$RESOURCE ...} ,
und/oder über die Projekt-Resource (Mainmenü > Projekt > Ressourcen und Bilder)


und dann beim Laden statt HInstance (dem Handle der EXE), das Handle der DLL verwenden.
LoadLibrary oder MSDN-Library durchsuchenLoadLibraryEx + LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE oder LOAD_LIBRARY_AS_DATAFILE
oder GetModuleHandle, wenn die DLL statisch eingebunden wurde, bzw. bereits geladen ist.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 4. Jun 2022 um 12:40 Uhr)
  Mit Zitat antworten Zitat
Peter-Pascal

Registriert seit: 18. Feb 2007
Ort: 32139 Spenge
200 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Memory Leak nach Zuweisung eines Resourcestream

  Alt 4. Jun 2022, 12:53
Danke Himitsu,
klingt gut, aber auch kompliziert.
Ich habe mir Deine Antwort kopiert, um es auszuprobieren.
Könnte eine weitere gute Möglichkeit sein, Bilder in einem Programm zu verwenden. Neben ZIP und SQLite.
Mit dem Link von Thomas bekomme ich eine Orientierung.

Am liebsten wäre mir ja SVG, aber das hat halt Grenzen. Ich denke in vielen Fällen führt kein Weg an Pixel-Bilder vorbei.
Peter Niemeier
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.398 Beiträge
 
Delphi 12 Athens
 
#5

AW: Memory Leak nach Zuweisung eines Resourcestream

  Alt 4. Jun 2022, 13:11
Ob in die EXE oder in eine DLL macht technisch keinen Unterschied. Man braucht nur das Handle des entsprechenden Moduls.
in Delphi ist HInstance das Handle der EXE/DLL, wo der Code drin ist. (aufpassen, wenn mit Packages compiliert)


Hier im Forum suchensvg / Bei Google suchendelphi svg
https://en.delphipraxis.net/topic/33...ort-in-delphi/
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Peter-Pascal

Registriert seit: 18. Feb 2007
Ort: 32139 Spenge
200 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Memory Leak nach Zuweisung eines Resourcestream

  Alt 4. Jun 2022, 21:31
noch mal vielen Dank,
der Link zum SVG ist sehr wertvoll
Peter Niemeier
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.155 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Memory Leak nach Zuweisung eines Resourcestream

  Alt 7. Jun 2022, 16:53
Also ich mache das schon immer so...

Ich packe alle Resourcen per zlib und binde diese ein...

Ob in einer DLL oder in der Exe ist fast egal, es sei den, Du brauchst die Speicherkachel von ~2GB (3GB mit flag) voll und ganz für die exe...

Mavarik
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
655 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Memory Leak nach Zuweisung eines Resourcestream

  Alt 7. Jun 2022, 17:13
Also eine Resourcen DLL ist so ziemlich das Dümmste was du machen kannst. Ausser dass du deutlich mehr Aufwand hast (2 Projektet die jeweils kompiliert werden, 2 Dateien die ausgeleifert werden müssen, etc.) bringt das überhaupt keine Voreteile. Du kannst die Bilder problemlos in deine EXE linken. Die Resoucen werden erst geladen, wenn du sie explizit lädst. Also mit Resourcensparen hat das nichts zu tun.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 05:01 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