Datei in die .exe einbinden
-
Ich versteh ehrlich gesagt nicht was du meinst, aber ich würde an deiner Stelle nen Tool schreiben, dass dir die Arrays mit den Daten erstellt.
Und die Rohdaten kannst ja einfach in nen unsigned char-Array einlesen, da nen char ja 1Byte groß ist und die Größe des Quellcodes wächst ja nicht wirklich, da es ja immernoch deine zusätzlichen Daten sind, nur in einem anderen Format.
-
Schon mal mit LIB.EXE probiert?
-
die resource geschichte vergrössert dein programm auch.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/resources.aspUser--- schrieb:
Und die Rohdaten kannst ja einfach in nen unsigned char-Array einlesen, da nen char ja 1Byte groß
das glaub ich nicht
-
Ich halte eine .rc Datei besser, wo man seine Dateien angibt die man reinladen will.
Keine Ahnung obs bei dir auch so funktioniert, aber bei der DLL Programmierung für ein bestimmtes Programm gehts ganz einfach so:
Datei *.rc:
BMP_BACKGROUND BITMAP DISCARDABLE "bmp\\background.bmp" BMP_ROSE BITMAP DISCARDABLE "bmp\\rose.bmp" BMP_ROSE_EXT BITMAP DISCARDABLE "bmp\\rose_ext.bmp"Datei *.h:
#define BMP_BACKGROUND 0x1000 #define BMP_ROSE 0x1003 #define BMP_ROSE_EXT 0x1004Grüße,
Harri
-
miller_m schrieb:
die resource geschichte vergrössert dein programm auch.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/resources.aspUser--- schrieb:
Und die Rohdaten kannst ja einfach in nen unsigned char-Array einlesen, da nen char ja 1Byte groß
das glaub ich nicht
Ich liebe solche Antworten

-
warum? ein unsigned char ARRAY ist mal mit sicherheit grösser als ein byte.
-
er will auch nicht ein char array in einem byte speichern

-
jetzt habe ich genauer gelesen. sorry
-
Mir ist schon klar, dass der Array im Programm nicht mehr Platz als die Rohdaten benötigen wird, es geht mir vielmehr um den Sourcecode.
@ harry3: Wahrscheinlich sind meine C++-Kenntnisse einfach zu gering... Du sagts dem Präprozessor, er soll das die Datei (in deinem Fall das Bild) in den Code miteinbeziehen, richtig? Wie könntest du dann nachher im Code auf diese Daten zugreifen, z.B. in eine externe Datei schreiben, also sozusagen das Bild aus der exe extrahieren? Welche Bedeutung haben die Hexwerte?
-
Ein Link, der zumindest einiges dazu erklärt (bei Nutzung von MSVC):
http://www.cpp-tutor.de/mfc/mfc/kap7/tut/tut2.htmIn den Beispielen fehlt noch der Aufruf von LockResource nach dem Aufruf von LoadResource.
Ein weiteres Beispiel findest Du:
http://www.codeproject.com/cpp/UpdateResource.aspDas Ablauf sieht in etwa so aus:
FindResource -> Handle auf die Resource
LoadResource -> Handle auf den Speicher
LockResource -> Zeiger auf die Daten
Der Resource Type wäre wohl in Deinem Fall RT_RCDATA. Dort kann man beliebige Daten unterbringen.Das ganze ist reine WinAPI.
Das Beispiel von harry3 ist eine Resource (Quell) Datei. Diese wird von dem Resourcencompiler (rc.exe) in eine .res Datei übersetzt. Die .res Datei kann dann als Resource in Dein Projekt integriert werden. Im Visual Studio erledigt das die IDE alles (mehr oder weniger leicht).
-
Danke an niemand :-), das hat etwas Licht ins Dunkel gebracht.