Inclure fichiers dans .exe

Messages postés
845
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
1 août 2017
- - Dernière réponse : yann_lo_san
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
- 24 janv. 2012 à 13:47
Bonjour à tous,

J'ai dans un fichier .rc une liste de fichiers auquels je souhaiterais accéder plus tard. Aprés la compilation les dits fichiers ne sont pas inclus dans l'exe généré.

Est-ce qu'il est possible d'inclure un dossier dans un exe afin d'y accéder utlérieurement ?

Merci de vos réponses ! (:
Afficher la suite 

6 réponses

Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
0
Merci
salut,


tu devrais trouver ce que tu veux ici


@++
Commenter la réponse de cs_patatalo
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
1 août 2017
1
0
Merci
Salut, merci de ta réponse.

En fait, j'ai quelque chose de cette forme là :
MY_RESOURCES RCDATA {".\\bin\\res1.cab", ".\\bin\\res2.cab", ".\\bin\\res3.cab"}


Pour le moment, si je veux accéder à ces fichiers je dois placer le répertoire "bin" avec l'exe.
Ce que je souhaiterais c'est que ces fichiers soient directement inclus dans l'exe.

Merci (:
Commenter la réponse de didoux95
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
7
0
Merci
Salut,
Il est possible d'utiliser d'abord un outil comme Tugzip pour mettre le dossier contenant tes fichiers dans une seule archive CAB. Cette archive CAB sera incluse comme ressource binaire à ton exécutable. Ce dernier pourra l'extraire là où tu veux en gardant l'arborescence originale.
Pour manipuler les archives CAB, Microsoft fournit un "Cabinet SDK" se basant sur les fonctions exportées par "cabinet.dll" disponible dans toutes les versions de Windows.
L'autre solution, fastidieuse si tu as beaucoup de fichiers à mettre en ressources, consiste à mettre dans ton fichier rc un identificateur pour chaque fichier à inclure. Les dossiers seront créés à l'exécution de ton programme.
Si s'était possible de mettre plusieurs fichiers dans une même ressource, je ne vois pas comment ton programme fera pour les distinguer avant de les extraire.
Commenter la réponse de racpp
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
1 août 2017
1
0
Merci
Merci, c'est ce que je vais faire. J'aurais espéré que l'on puisse faire autrement.

A bientôt,
didoux95
Commenter la réponse de didoux95
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
7
0
Merci
Salut,
Estimant que cela pourrait intéresser d'autres personnes, et en voulant mettre à jour un de mes anciens codes sous VC6 pour l'adapter et le déposer sur le site, je me suis apperçu que le "Cabinet SDK" n'est plus nécessaire puisqu'il est intégré par défaut aux versions plus récentes de Visual C/C++.
J'espère avoir un peu de temps libre ce week end pour le finaliser et le déposer sur cppfrance.
Commenter la réponse de racpp
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
17
0
Merci
Salut,

une méthode possible :

Créer un "compound file" avec StgCreateStorageEx() qui donne un IStream et crée un fichier "pak".
Insérer autant de fichiers nommés que necessaire dans ce pak.
Inclure ce fichier dans les ressources de l'exe.
(éventuellemnt on peut le compresser)
Puis faire l'opération inverse lors de l'utilisation :
Extraire la resource de l'exe en tant que fichier "pak" et piocher dedans en ouvrant des stream nommés comme si c'était des fichiers physique.
Commenter la réponse de yann_lo_san