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 :

Copier un fichier inclut dans le ".exe"


Sujet :

C++Builder

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Copier un fichier inclut dans le ".exe"
    Bonjour,

    donc, j'utilise C++ builder 6.
    Et je ne sais pas trop où chercher, ni trop expliquer mon probleme en fait... mais je vais essayer!

    Voila, j'ai fait un programme qui aurrai besoin d'en lancer un autre dans certaine conditions, mais sur certain pc, il se peut que ce programme n'y soit pas, etant de petite taille, je voulais l'inclure dans le programme l'appelant, et dans le cas où il n'es pas présant dans la machine, il irrai le copier tout seul sur le disque dur de celle-ci, à un emplacement prédéfinie. Un peu a la maniere qu'un installateur le ferrai... mais je prefere ne conserver qu'un seul fichier pour déployer mon programme, pour un novice c'est souvent bien + simple de n'avoir qu'un seul ".exe" pour faire fonctionner un programme, de cliquer dessus, et que le reste soit transparant pour lui.

    Merci de m'orienter

  2. #2
    say
    say est déconnecté
    Membre expérimenté
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Points : 1 300
    Points
    1 300
    Par défaut
    et avec un installeur, ce ne serait pas transparent?
    Ils ne savaient pas que c'était impossible alors ils l'ont fait (Mark Twain)
    _ _ _ _ _ _ _ _ _

    La planète ne nous appartient pas, elle nous a été prêtée par nos enfants
    _ _ _ _ _ _ _ _ _

    Technos : Access, C++ Builder, SQL, PostgreSQL, Crystal Reports, XML entre autres

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Points : 1 148
    Points
    1 148
    Par défaut
    Tu crées un fichier .rc (il y a de la doc sur le net) que tu compiles avec brcc32 (le compilateur de ressources de Borland).
    Ca te donnera un .res à inclure à ton projet qui contiendra ton petit programme.
    Ensuite dans ton code avec TRessourceStream tu peux accéder à ce fichier..après pour le copier il y a peut être une fonction SaveToFile du ressource stream mais j'en doute.
    Peut être quelqu'un a t il une meilleure solution que la copie "à la main" du TRessourceStream vers un fichier ?

    Pour l'utilisation du TRessourceStream voir l'aide de C++ Builder je n'ai pas eu trop de problèmes avec.

    Un exemple de .rc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NOMRESSOURCE RCDATA mon_fichier.exe
    Compiler avec brcc32, dans un invit de commande :
    brcc32 mon_rc.rc
    EDIT : sinon si tu préfères utiliser un installeur, ils te sortent aussi un simple fichier .exe. Mais bon tu as dit que tu avais un lancement conditionel du programme...
    Neilos

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Oui, voila pkoi je ne veux pas utiliser un setup.exe ou autre... qui ne servira surment pas a grand chose, si ce n'es qu'ecraser un fichier dans le cas où il existe deja...
    Merci bien pour cette aide, je vais me documenter la dessus ce soir et faire des essai.
    Je rappel grossierement mon probleme pour ceux qui aurrai d'autres voix de sollutions Je veux donc, inclure un .exe existant dans mon propre .exe, et l'extraire en toute transparence dans un dossier, dans certaine condition, donc, dans le cas où il n'existe pas deja par exemple...

    encore merci.

  5. #5
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Points : 446
    Points
    446
    Par défaut
    Si tu as la librairie JEDI d'installée, tu trouveras un objet TJvDataEmbedded (dans l'onglet "Jv Non Visual", l'icône est composé de trois petits rectangles blancs avec EXE ecrit en dessous).

    Je l'ai découvert aujourd'hui et ne le connais pas très bien, mais il permet d'inclure un fichier (double click sur l'icone quand tu l'as mis sur ta fiche) et de le sauver plus tard avec DataSaveToFile(). Il n'y a malheuresement pas de doc mais tu peux retrouver les methodes et propriétés avec code insight...

    PS: Dans un premier temps j'ai eu une erreur à la compilation de JvDataEmbedded.hpp. Il faut juste changer deux lignes dans la class TJvDataEmbedded en ajoutant le mot-clé "DYNAMIC":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	inline DYNAMIC void __fastcall  ReadUnpublished(Classes::TReader* Reader){ TJvComponentEmbedded::ReadUnpublished(Reader); }
    	inline DYNAMIC void __fastcall  WriteUnpublished(Classes::TWriter* Writer){ TJvComponentEmbedded::WriteUnpublished(Writer); }

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Impécable, ça fonctionne tres tres bien ce truc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JvDataEmbedded1->DataSaveToFile("dada.jpg") ;
    et ça me remet l'image que j'avais choisit en cliquant dessus, sur ma form... y'a quasiment rien faire lol C'est magique

    Pour ceux que ça interesse, la librairie est dispo ici, et elle s'install toute seul pour une fois, y'a des milliers de truc dedans apparament, c'est génial a premiere vu

    http://homepages.borland.com/jedi/jvcl/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Copier un fichier *.txt dans une string
    Par LGnord dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 23/05/2008, 14h03
  2. Copier un fichier excel dans un power point
    Par jhpotter dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/05/2008, 10h11
  3. Utiliser avec SDL fichiers incluts dans l'exe
    Par ZouBi dans le forum SDL
    Réponses: 1
    Dernier message: 22/10/2007, 13h08

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