C++ Bild in exe integriert?!

xtrars

Ensign
Registriert
Juni 2010
Beiträge
148
Hallo an alle,
ich habe mir vor kurzem eine Exe geschrieben... und das Funktionierte auch super. Die Exe macht das was sie machen soll (aktuelle Mausposition anzeigen). Allerding hab ich aus neugier ein Frameset genutzt; auch das klappte. Jetzt habe ich aber 2 Dateien (Die Exe und das Bild) und wollte fragen wie das geht, dass man das Bild in die Exe integrieren kann und dann das mit BrushCopy oder CopyRect aufrufen kann. Habe das ganze mal bei Rapidshare hochgeladen um sich ein besseres Bild machen zu können. Es liegen bei: Der Quellcode, die Exe, das Bild.

Danke im Voraus...

http://rapidshare.com/files/455173752/Mausposition.zip
 
Zuletzt bearbeitet:
Sprache ist C++
Mit Framework meint er, dass du ja wohl nicht von 0 aus einfach ne Datei geschrieben hast. Z.B. brauchst du Bibliotheken für die Grafikdarstellung, was z.B. bei C++ Qt oder wxWidgets wären. Wahrscheinlich wirst du außerdem ne Entwicklungsumgebung nutzen, die Basisfunktionen zur Verfügung stellt etc.
 
ohne das jetzt runterzuladen wollen, aber wenn du sagst, welche sprache du benutzt hast (c,c++,java,c#, f#, scala...) bzw. welches framework (.net, etc) dann könnten dir das einige auch so sagen^^
 
2 Leute, die es nicht schaffen den Threadtitel zu lesen? Wie kommt ihr überhaupt hier rein, ohne nen Link zu klicken?
[C++] Bild in exe integriert?!
 
Also ich habe eigentlich alle Laufzeitbibliotheken in die Exe integriert... müsste also gehen... Für die Frage mit was ich Programmiert habe: C++Builder XE
Ergänzung ()

Um Fortanus recht zu geben: Die Sprache ist C++ (wie eigentlich der Link schon sagt^^)
 
Also bei C# gibt es die möglichkeit ein Bild als Resource dem Projekt hinzuzufügen, ich würde mal meinen das das auch mit C++ geht.
 
ja aber wie...^^ das aufrufen macht mir die meisten sorgen^^
 
Mir fallen für Windows spontan zwei Möglichkeiten ein:

1. Wenn das Bild nicht all zu groß ist, dann pack es in ein statisches Feld:
static unsigned char myImage[] = {0x01, 0x02, 0x03, ....};
Um die Liste mit den Hexwerten zu erzeugen bauste dir einfach ein kleines Script, alternativ gibts im Internet bestimmt etwas, dass dir diese Arbeit auch abnimmt.

2. Leg das File als "Resource" ab. Das sind Zusatzinfos, die mit in die .exe reinkommen. Die kannste dann später zur Laufzeit mit Hilfe der WinAPI wieder auslesen. Normalerweise werden diese Resourcen über Textdateien mit der Endung .rc und einem speziellen Compiler (Bei MinGW zb das Tool "windres") erzeugt und dann beim Linken mit in die .exe gepackt.

Siehe Wikipedia: http://en.wikipedia.org/wiki/Resource_(Windows)
Nachtrag: Beispiel mit einer eingebetteten Textdatei: http://stackoverflow.com/questions/...in-a-resource-in-a-native-windows-application
 
Zuletzt bearbeitet: (Nachtrag mit Beispiel)
asso.. du hast einen c++ von ehemals borland :)
hatte vor dekaden mal mit delphi zu tun, denke das prinzip wird gleich geblieben sein.

jedenfalls wird beim compilieren eine *.res datei mit in deine *.exe gelinkt.
in diese *.res-datei kommt dein bild hinein.

dazu gibt es bereits ein mitgeliefertes tool - .. falls du es nicht findest, nimm eins wie dieses hier.
 
mit den diversen resource-editoren kannst auch einsehen ob das bild in die *.exe reingekommen ist. wenn das der fall ist, wirst mehrere möglichkeiten haben um an diese resource zur laufzeit zuzugreifen. wenns so weit ist und du nicht weiterkommst, sag bescheid.

damit du bescheid weißt, wo der builder seine wuzeln her hat, lies mal hier.
 
Zuletzt bearbeitet:
raudy1992 schrieb:

Wenn es ist wie in delphi, dann im Hauptmenü vom IDE-Fenster: Projekt->Ressource->Hinzufügen->"Deine Datei wählen"->Ok

Dann via Funktion LoadImage oder CImage::LoadFromResource laden.

Ich lehn mich jetzt mal aus dem Fenster und behaupte, dass der C++Builder auch die VCL beherrscht und es dementsprechend LoadFromResource-Methoden in der normalen Image-Klasse gibt, du aber genausogut auf den ganzen Käse verzichten kannst, einfach ein Image auf das Form legen kannst, den Bild reinlädst und dir den ganzen Ressourcen und APi-Käse sparst.
 
Danke an alle... eure Vorschläge uns Anregungen haben mich schon mächtig nach Vorn gebracht. Zwar hab ich jetzt noch keine non-plus ultra Lösung aber ich muss mich ja selber noch ein wenig anstrengen^^.
 
Zurück
Oben