Autor | Thema: bMp | | Datum:11.07.02 10:42 
| |
Ich habe eine exe in dich ich nun mein BMP Bild packen möchte. Wie geht das?
PS das BMP Bild wird im Programm geladen und sollte vor dem benutzen nicht in ein verzeichnis kopiert werden.
|
| | Datum:11.07.02 13:54 
(mrk@mrk-soft.de) | |
Hallo,
Res-Shop Delxe kann Bilder - Sounds, Ext, in eine Profan Datei
sehr einfach einlinken, quasi schon im Quellcode.
allerdings:
Beim zurückhohlen des Bildes muss entwerder die Datei vorher
auf die Platte zwischengespeichert werden, damit Profan diese
dann mit LoadBMP laden kann, (anders läst Profan leider
kein Laden von MBP Bildern zu), oder durch eine DLL kann
dann das Bild direkt geladen werden. Die Dll muss dann
allerdings bei der EXE mit beiliegen.
Die DLL wird ab Version 4.5 enthalten sein !!!!!
|
| | Datum:11.07.02 15:50 
| |
Hi,
die ProSpeed.dll kann ebenfalls Bilder aus Resourcen (Exe oder Dll) laden, ein Funktionsaufruf genügt dafür schon.
Es werden Bmp, Jpg, Gif und Wmf Bilder unterstützt.
Gruß,
Frank
|
| | Datum:11.07.02 19:39 
(mischabrandt@gmx.de) | |
Hallo Mathias?
Warum nicht? Wie auch immer Du es an die Exe 'linkst',
pack es doch bei Programmstart ins Windows-Temp-Verzeichnis
und lösche es bei Programmende wieder.
Das sieht dann keiner! ;-)
Es sei denn er ist haaartnäckig! :-D
Gruß,
Mischa
|
| | Datum:11.07.02 21:13 
| |
mhhhhh schade.........
hatte eigentlich gedacht das ich das ganze einfach in meine exe inlinken kann, ok dann geht es nicht anderst, aber hauptsache die ist in der exe auch wenn ich sie vorher auf die platte schreib muss .........
|
| | Datum:12.07.02 08:40 
(Pascalxd@owl-online.de) | |
Hallo Leute!
Wie wär's denn mit "DrawExtBmp" und ResHacker?
SeeYou
Pascal
|
| | Datum:12.07.02 10:35 
| |
schon probiert:
meine prf datei hies 'hallo.prf' habe dann eine exe erstellt, die ebnefalls 'hallo.exe' heisst und dort die ressorucen eingefügt.....
während der entwicklung mit der prf datei hat also hallo.prf die dateien immer aus der hallo.exe ausgelesen. nacher als ich die hallo.prf zu einer halllo.exe gelingt habe und die ressorcen nun der neuen halllo.exe zugeführt habe, sollte eigentlich diese aus sich selbst auslesen aber nix wars........
|
| | Datum:12.07.02 11:01 
(webmaster@rokosoft.de) | |
Hi Mathias,
so kann das nicht funktionieren.
Wieso eigentlich ne EXE? Dafür sind doch DLL's
vorgesehen.
Kopiere die Datei Leer32.dll aus dem Profanordner im Unterordner RES in Dein Verzeichnis, wo Dein Profancode (oder später Exe Programm) liegt.
Hoffe, Du hast ne 32 Bit Profan Version - ansonsten heist die Datei LEER.DLL glaub ich.
Öffne diese mit ResHacker.
Um dort ein (oder mehrere) Bilder einzufügen gehe wie folgt vor:
Wähle aus dem Menü
Action/Add a new Resource.
Dort OPEN FILE WITH NEW RESOURCE Button wählen. Im folgenden kannst Du Dein Bitmap wählen, welches hinzugefügt werden soll.
Nun steht dort: Resource Typ BITMAP
Gebe im Feld (Resource Name) darunter einen eindeutigen Namen ein (dies wird später im Code wichtig sein, um dieses Bild anzuzeigen).
Beispiel: HAUPTBILD
Gib nun unter Resource Language 0 ein.
Nun ist das Bild in der Dll.
Drücke auf Speichern.
Es gibt natürlich auch schöne Menüpuntke wie z.B. eine Resource austauschen (ist interessant, wenn Du das Bild mal kurz geändert hast).
In Deinem Programm rufst Du wie folgt das Bild auf:
'.....
declare hdll%
hDLL%=@UseDLL("LEER32.DLL") 'wenn umbenannt den anderen Namen.
'......
'Der Aufruf (Beispiel):
DrawExtBmp hdll%,"HAUPTBILD",52,54;0
'..... und am Ende natürlich:
Freedll hdll%
und so funktioniert es aufjedenfall. Ob nun ne Exe, oder ne Dll, es gibt für den User keinen Unterschied. Es ist halt einfacher auf ne externe Dll zuzugreifen, als auf die eigene Exe - da gabs in der Vergangenheit schon öfters Probleme.
Ich nutze diese Funktionen schon länger und bin gut damit gefahren.
Ich hoffe das ich Dir nix erzählt habe, was Du schon wusstest ;) ansonsten kann es vielleicht ein anderer gebrauchen.
Nun hau rein und zeig mal ordentlich Bilder an ;)
Rolf
|
| | Datum:12.07.02 12:48 
(Pascalxd@owl-online.de) | |
Hallo Mathias!
Eine Runtime sollte immer *vor* dem Linken geändert/erweitert werden. Darum haben Entwicklungsumgebungen für Profan ja eine Projektverwaltung; da kann man für jedes Projekt entsprechende Interpreter + Runtime zusammenstellen.
Oder mach's so, wie Rolf vorschlägt. Dazu bliebe vielleicht noch zu sagen, dass die dll dann *nicht* in irgendein Systemverzeichniss muss.
SeeYou
Pascal
|
| | Datum:12.07.02 13:10 
| |
ich habe mich wohl falsch ausgedrückt, ich habe es bisher immer so verweilt, das ich die dateien in eine externe dll gepackt habe, wie es rolf schon erklärt hat. d.h heisst also das ich zwei dateien haben, einmal die exe und einmal die dll, die alle dateien enthält.
jetzt möchte ich aber einfach alle dateien der dll in meine exe packen so das ich die nacher nur noch eine habe...
die dateien können gerne auch vorher auf die platte geschrieben werden, das ist egal
ich habe mal den res shop deluxe von mrk probiert bei, mir klappt es bei keiner version, egal ob ich die deluxe (4.0) habe oder die alte Version (2.0) überall sind die dateien nicht enthalten und das programm kann die bmp nicht anzeigen......obwohl sich die größe der datei verändert hat
|
| | Datum:12.07.02 13:18 
| |
Hi,
ProSpeed.dll:
LoadExtResource (H,S)
Lädt ein Bild aus einer Resource-Datei in den Arbeitsspeicher zur späteren Benutzung. Die Formate BMP, JPG, GIF und WMF werden als Grafikdateien unterstützt. Eine Resource-Datei kann eine Dll sein oder ein Exeprogramm, das mit Daten zusammen gelinkt wird.
Gruß, Frank
|
| | | Datum:12.07.02 16:40 
| |
Den Reshacker besitze ich bereits.....
|
| | Datum:13.07.02 14:13 
(Pascalxd@owl-online.de) | |
Hallo Mathias!
> Den Reshacker besitze ich bereits.....
Wo ist dann das Problem?? ;-)
Öffne damit die Prfrun32.exe, die du verwenden willst, packe bmp's, Icons, Menüs usw. rein (vielleicht noch ein paar selbstentworfene Dialoge)- Fertig!
Nach dem anschliessenden (!!) Linken sollte alles über die jeweiligen Profan-Funktionen zur Verfügung stehen (als Handle musst du natürlich jeweils %HInstance einsetzen)
Damit das Ganze auch während der Entwicklung des Quelltextes läuft, musst du auch den verwendeten Interpreter (Profan.exe) entsprechend erweitern.
Vielleicht hast du dich ja irgendwo bei den Projekteinstellungen vertan und auf die falschen Exe's zugegriffen. Da wärst du nicht der Erste... ;-)
Falls das alles nicht klappt, beschreibe das Problem doch mal genauer.
HTH
Pascal
|
| | Datum:14.07.02 11:27 
| |
hoffe, das ganze geht auch so einfach wie du das beschrieben hast ......:)
ich danke dir
|
| | Datum:18.07.02 17:00 
| |
es klappt!!!!!!
ich habe nur ein problem:
ich habe eine bmp in die beiden exen gemacht und möchte sie nun anzeigen lassen...
@WINEXEC("PROFRUN.EXE",0)
dll%=%HInstance
DrawExtBmp %HInstance,1,10,10;0
DrawExtBmp dll%,"LOGO",10,10;0
im interpreter läuft es, wenn ich es jedoch nacher asl exe linke wird es nicht angezeigt......
das bild wir auf einen dialogfenster anzeigt........
startpaint ist gesetzt
|
| | Datum:18.07.02 21:35 
(Pascalxd@owl-online.de) | |
Hallo Mathias!
> @WINEXEC("PROFRUN.EXE",0)
> dll%=%HInstance
> DrawExtBmp %HInstance,1,10,10;0
> DrawExtBmp dll%,"LOGO",10,10;0
Hmmm...
Ich glaube, da hast du etwas Grundsätzliches missverstanden: Die Systemkonstante
%HInstance enthält nur das Handle deines gerade laufenden Programmes, also jeweils
das Handle des Interpreters (Profan.exe), der gerade deinen PRF-Quelltext "abspielt"
oder das Handle der Runtime (Prfrun32.exe), auf der gerade ein Compilat (PRC) "läuft".
Und wenn du das ganze zu einem fertigen Programm linkst, ist %HInstance eben dessen Handle.
Wenn du also in die beiden Exes je ein Bild "Logo" eingebaut hast, sähe der
Aufruf so aus (ohne vorheriges WinExec oder sonstwas):
DrawExtBmp %HInstance,"Logo",10,10;0
Da muss dann auch zum Compilieren oder Linken nichts geändert werden.
HTH
Pascal
|
| | Datum:19.07.02 16:44 
| |
komisch habe den befhel einfach eine zeile tiefer gesetzt und jetzt läuft es :)
aber danke für deine mitteilung :D
|
| | Datum: 19.07.02 19:42 
| |
also das heisst ich kann diese befehle weglassen muss:
@WINEXEC("PROFRUN.EXE",0)
dll%=%HInstance
und nur den hier schreiben muss?
DrawExtBmp %HInstance,"Logo",10,10;0
?
|
|
|