IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Composant qui intègre plusieurs fichier à un seul exe


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 145
    Par défaut Composant qui intègre plusieurs fichier à un seul exe
    Bonjour à tous,

    Je suis actuellement à la recherche d'un composant qui permet d'intégrer plusieurs document dans l'application, par exemple, je voudrais mettre dans mon .exe un fichier zip, un fichier bmp et un fichier ini. Ça ferait à peu près comme un fichier compresser sauf que la, ce fichier, serait l'application, (le .exe) qui contiendrait ces fichiers.

    J'ai déjà trouver un composant qui faisait exactement cela, mais il ne semble pas vouloir fonctionner. C'était fileStorage.

    Merci d'avance,
    Cordialement.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 52
    Par défaut
    ca va probablement etre bete ce que je vais dire mais tu pourrai les inserer en tant que ressources non ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 145
    Par défaut
    Non ce n'est pas bête du tout, j'y est pensé mais je ne crois pas que l'on puisse extraire cet ressource sous forme de fichier après, pour l'utiliser...

    Merci de la réponse rapide
    Cordialement.

    EDIT

    J'ai même l'impression que ça ne fonctionne pas, je viens seulement de m'apercevoir que la taille de l'exe une fois compiler avec un fichier de 13 mo en ressource ne pèse que 450ko

    Donc je pense que même si je n'ai pas d'erreur quand je l'ajoute, il ne l'ajoute pas quand même.

    Cordialement

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 52
    Par défaut
    j avais codé y a longtemps un programme qui ecrivait des truc en fin de fichier

    Fait une recherche sur les EOF si la methode te semble intéressante.

    Le principe est simple : tu ecrit tes fichiers a la fin de ton exe (tu peux utiliser un stub si tu le souhaite).

    Perso j'utilisai ca poour de petits paramètres mais ca doit etre possible de faire cela pour des fichiers plus imposant.

    EDIT: tu peux essayer de renommer le fichier que tu veut integrer en .rc et de l integrer tel quel mais je sais pas si ca marchera :/)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 145
    Par défaut
    Je viens d'essayer de l'ajouter avec d'autres extensions, tels que .rc, .res, .lib, .idl
    mais aucune de ces 4 ne fonctionnent, il me sors une erreur comme quoi il y a un problème dans le fichier (logique).

    Je vais essayer de les rajouter au bout, mais le programme se lancera quand même ???

    Cordialement

  6. #6
    Membre émérite
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Par défaut
    Salut !

    Le fichier .rc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RESSOURCE1 RCDATA TOTO.zip
    Puis tu ajoute ce fichier .rc au projet.

    et ce qui concerne le codage de l'éxraction de ce fichier depuis ton application :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    #include <mmsystem.h>
     
     
     
     
    TResourceStream *Ressource=new TResourceStream((int)HInstance,"RESSOURCE1",RT_RCDATA);
     
    Ressource->SaveToFile("C:\\TOTO1.zip");//Extraire la rexxource depuis l'exe jusqu'au C:\\
     
     
    delete Ressource;

    Bonne continuation !

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 145
    Par défaut
    Bonjour,

    Merci beaucoup de la réponse et de l'aide en même temps !

    J'ai effectivement remarqué qu'en ajoutant 60mo à l'application, elle met un certain temps à se lancer après avoir effectué un double clic.
    Y aurait-il une solution, tel que éviter de charger ou de mettre en mémoire les ressources au lancement de l'application ?

    Cordialement

  8. #8
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Tu peux mettre les resources dans une DLL que tu charges quand tu en as besoin seulement!

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 145
    Par défaut
    Salut,

    L'idée ma l'air très bonne, mais je vois pas comment je pourrait m'y prendre, si tu pouvait expliquer un peu plus les étapes...

    Merci d'avance !
    Cordialement.

  10. #10
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Tu fais une DLL normal et tu inclus les ressources

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    #include <windows.h>
    #pragma resource "Mes_Ressources.RES"
    //---------------------------------------------------------------------------
    //   Important note about DLL memory management when your DLL uses the
    //   static version of the RunTime Library:
    //
    //   If your DLL exports any functions that pass String objects (or structs/
    //   classes containing nested Strings) as parameter or function results,
    //   you will need to add the library MEMMGR.LIB to both the DLL project and
    //   any other projects that use the DLL.  You will also need to use MEMMGR.LIB
    //   if any other projects which use the DLL will be performing new or delete
    //   operations on any non-TObject-derived classes which are exported from the
    //   DLL. Adding MEMMGR.LIB to your project will change the DLL and its calling
    //   EXE's to use the BORLNDMM.DLL as their memory manager.  In these cases,
    //   the file BORLNDMM.DLL should be deployed along with your DLL.
    //
    //   To avoid using BORLNDMM.DLL, pass string information using "char *" or
    //   ShortString parameters.
    //
    //   If your DLL uses the dynamic version of the RTL, you do not need to
    //   explicitly add MEMMGR.LIB as this will be done implicitly for you
    //---------------------------------------------------------------------------
    
    #pragma argsused
    int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
    {
       return 1;
    }
    //---------------------------------------------------------------------------

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 145
    Par défaut
    Bonsoir,

    Merci d'abord, mais en faisant ça, j'obtiens une erreur de lieur (je rappelle que ma ressource est en réalité en fichier exe de 16mo)
    J'ai essayé en faisant là technique qui m'a été donné au début à savoir on créer un fichier .rc où l'on met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RESSOURCE1 RCDATA ressource.exe
    Puis on ajoute ce fichier au projet (ici, à la DLL).

    Jusque là, ça passe sans problème, la DLL de sortie fait bien 16mo, le fichier à donc été ajouté.

    Mais lorsque je fait une nouvelle application et essaie d'intégrer la DLL (en faisant Project->Add to Project1...), là, il compile sans problème et montre que la DLL est présente dans le projet mais le fichier de sortie ne dépasse pas les 400ko, il n'a donc pas intégré là DLL, mais alors, qu'en a-t-il fait ? Peut être il créer simplement un lien entre les deux, ne l'intègre pas, alors comment faire pour qu'elle fasse partie du .exe ?

    Merci à tous pour votre aide !
    Cordialement.

Discussions similaires

  1. Composant qui exécute plusieurs requêtes
    Par sinoun dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 10/06/2015, 15h13
  2. [XL-2010] Classeur qui compile plusieurs fichiers
    Par yaya.gaga dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/09/2014, 15h00
  3. Une seule ListView pour plusieurs fichier php qui renvoie des données JSON
    Par max8392 dans le forum Composants graphiques
    Réponses: 1
    Dernier message: 22/08/2014, 10h46
  4. [Menu contextuel] une application qui intercepte plusieurs fichiers
    Par SpecialCharacter dans le forum Windows
    Réponses: 2
    Dernier message: 26/08/2009, 07h32
  5. [XML][Java] parser plusieurs fichiers en un seul arbre DOM ?
    Par mrlenul dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 29/11/2005, 11h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo