Seite 1 von 2
Mittels UDRes ein BMP aus einer EXE laden
Verfasst: 30.04.2008 22:36
von Darkman1
Hallo alle zusammen.
Bin fast am verzweifeln.
Code: Alles auswählen
exe.l=OpenLibrary(0, "L:\PureBasic\EC200Edit\EC200Edit2.exe")
If exe
Image.l = UDRes_Get(10)
If Image
CatchImage(10, Image, MemorySize(Image))
EndIf
MessageRequester("Image=",Str(Image))
EndIf
Mittels jaPBe habe ich ein kl. Bild an die EXE angehängt. Das ist auch mit der richtigen Nummer (10) drin, berichtet mir der "XN Resource Editor".
Tatsache ist jedenfalls, dass "Image" immer 0 ist.
Weiß jmd welchen Fehler ich mache?
Vielen Dank im Voraus !!
Verfasst: 30.04.2008 22:52
von ts-soft
Mit UDRes kannste es nur laden, wenns mit UDRes erstellt wurde! UDRes erstellt
in einem speziellem RCData format (compiliert das selber). Mit jaPBe wirste wohl
eine Image-Resource hinzugefügt haben.
Verfasst: 30.04.2008 22:58
von Darkman1
Ok, ok, aber ich hab doch irgendwo gelesen, dass Deine UDRes ebenfalls Ressourcen aus einer EXE laden kann. Bin ich da so verkehrt?
Verfasst: 30.04.2008 23:06
von ts-soft
Darkman1 hat geschrieben:Ok, ok, aber ich hab doch irgendwo gelesen, dass Deine UDRes ebenfalls Ressourcen aus einer EXE laden kann. Bin ich da so verkehrt?
Ja, etwas.
Sie kann benutzerdefinierte Resourcen erstellen für alle möglichen Dateien,
Bilder, Sprites, Musik, DLLs usw. und bietet ausser dem wiederherstellen auch
erweiterte Funktionen, wie catchen, benutzen der DLL aus dem Speicher,
benutzen der Resourcen, der DLL die in den Resourcen ist (mit UDRes erstellt)
UDRes kompilierte Datei kann dann einfach per Import "meinexy.res" : EndImport
der Exe hinzugefügt werden.
Mit Resourcen, die mit anderen Programmen erstellt wurden macht die Lib nichts.
Man kann aber UDRes Resourcen eines anderen Programmes mit einem
weiterem nutzen, unter Verwendung der Libfunktionen.
Hoffentlich war das nicht zu kompliziert

Verfasst: 01.05.2008 08:00
von H.Brill
Hallo ts-soft,
da hätte ich auch eine Frage. Ich nutze deine
UDRes auch erfolgreich. Ich habe in meinem
Programm eine DLL und 17 Textdateien als
Resource eingebunden. Nun werden oft die
Textdateien (Preilisten) geändert bzw. erweitert.
Im Moment mache ich es so : Ich compilere jedesmal
bei Preisänderungen das Programm neu und schicke
es meinen Kollegen wieder. Daher will ich gerne so
eine Art Updater machen, damit die Kollegen das
Hauptprogramm (Resourcen) selber modifizieren
können. Windows selber erlaubt es ja in einem
laufenden Prozess nicht.
Ist sowas möglich ?
Denke da an den optionalen Parameter
hmodule.l in deiner Lib.
Verfasst: 01.05.2008 08:18
von marco2007
@H.Brill: Datenbank?
Verfasst: 01.05.2008 08:54
von H.Brill
Ja,
sind alles .csv-Dateien, die ich
mittels UDRes_GetPack() in ein
ListIcon einlese.
Im Grunde soll halt nur die neue .res - Datei
in die .exe integriert werden, ohne wieder neu
compilieren zu müssen. Hab ja schon vor einiger
Zeit hier einen ResManager mit den UDRes - Funktionen
vorgestellt. Den würde ich dann zu so einem Updater
erweitern.
Verfasst: 01.05.2008 09:10
von marco2007
Ich meinte Sql-Datenbank. Die würde sich anbieten.
Daten ändern, Liste erweitern, ...perfekte Vorausetzungen für eine SQL-Datenbank.
Verfasst: 01.05.2008 10:02
von Darkman1
@ts-soft
Ok, soweit verstanden, geht halt mit UDRes nicht so, wie ich mir das vorstellte. Ich habe mein Problem mit dem herkömmlichen "IncludeBinary" gelöst, sind eh nur ein paar Bildchen für Buttons...
Trotz allem - herzlichen Dank für Deine Ausführungen.
Verfasst: 01.05.2008 10:15
von H.Brill
marco2006 hat geschrieben:Ich meinte Sql-Datenbank. Die würde sich anbieten.
Daten ändern, Liste erweitern, ...perfekte Vorausetzungen für eine SQL-Datenbank.
Ob nun meine .csv Dateien oder SQL-Datenbank ist nicht
für mich relevant. Kernpunkt ist ja, daß ich meine Daten
in der .exe haben will. Ist mehr so als Sicherheit gedacht,
im Falle, daß meine User die Datei(en) versehentlich löschen.
In meinem aktuellen Programm kann man sich dann halt
die Listen aus der Resource wieder laden u. als csv-Dateien
wieder abspeichern. Nur sind halt die Daten nicht ganz aktuell,
wenn man sie erst kurz vorher aktualisiert hat.