Inclure fichiers dans .exe

didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 - 13 janv. 2012 à 21:31
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 ! (:

6 réponses

cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 1
14 janv. 2012 à 15:47
salut,


tu devrais trouver ce que tu veux ici


@++
0
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
14 janv. 2012 à 16:15
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 (:
0
racpp Messages postés 1910 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 15
14 janv. 2012 à 19:27
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.
0
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
16 janv. 2012 à 19:31
Merci, c'est ce que je vais faire. J'aurais espéré que l'on puisse faire autrement.

A bientôt,
didoux95
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
racpp Messages postés 1910 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 15
21 janv. 2012 à 10:52
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.
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 24
24 janv. 2012 à 13:47
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.
0