Voilà mon souci. Attention soyez attentifs !
Je souhaite mettre un fichier en ressource d'un exécutable. Facile me direz-vous !
Sauf qu'il y a un hic. A la compilation je sais le faire sans souci.
Le souci est que je souhaite ajouté un fichier en ressource d'un exécutable qui est déjà compilé.
Donc première question, est-ce possible ?
Si oui, comment dois-je m'y prendre ?
Merci d'avance pour votre aide.
YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
Salut,
Tu peux mettre en ressource n'importe quel type de fichier. Personnellement, j'éris le fichier rc manuellement en précisant l'identificateur de la ressource, son type et son chemin. Comme on peut le voir, c'est ultra simple:
ID_001 BINAIRE "appli.exe"
Je pense que c'est un standard pour tous les compilateurs de ressources sous Windows et Linux.
Sous Windows on fait FindResource(0,<var>"ID_001"</var>,<var>"BINAIRE"</var>); pour trouver la ressource.
24Karas > merci pur les liens j'y regarde de suite.
racpp > comme je l'ai précisé je ne veux pas mettre en resource à la compilation mais dans un exécutable déjà compilé.
YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
Merci racpp, c'est pour un exe externe donc aucun souci de ce côté là !
Merci beaucoup 24Karas, tes liens sont très intéressants et semblent me convenir parfaitement.
Je vous tiens au courant de l'évolution.
YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
Il y a un souci que je n'arrive pas à régler pour l'instant.
Dans les exemples que j'ai, on passe une ressource d'un exécutable à un autre exécutable.
Sauf que moi, je veux incorporer un fichier quelconque (binaire) dans un exécutable.
En fait il semblerait qu'il faille que je transforme le fichier à ajouter en une ressource mais je ne sais absolument pas comment faire.
Quelqu'un a une idée ?
YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
Tu dois mettre le contenu de ton fichier EXE dans un buffer avec
ReadFile(). La fonction UpdateResource() permet de préciser le nom et le
type de la ressource à ajouter. Son 5ème paramètre est le pointeur
(buffer) sur la zone contenant les octets à mettre en ressource. Le
dernier paramètre précise sa taille.
Ok merci pour l'info racpp !
Ya juste un souci, ce qu'il y a à mettre en ressouce peux faire plusieurs centaines de Mo voir quelques Go.
En fait c'est un fichier complètement quelconque.
C'est pour cela que si je mets tout dans un buffer je vais exploser la mémoire ! lol
YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
J'ai peut-être une autre idée.
Si je rajoute moi-même en écrivant tout simplement dans le fichier exécutable pour y rajouter un fichier quelconque après les données binaires. Est-ce que cela ne gênera pas l'exécution ?
YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
Ah parfait ! Merci BruNews, je pense que je vais donc adopté cette technique.
Y a t'il un moyen de savoir par le code, la taille de données de l'exécutable, une fois que j'aurais ajouté un autre fichier à la suite ?
YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
Lol ! J'avais même pas pensé à mettre la longueur à la fin !
C'était tout bête pourtant.
J'ai tout ce qu'il me faut maintenant.
Merci à vous tous de m'avoir aidé.
YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"