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 :

Un exécutable qui créé un exécutable [Non suivi]


Sujet :

C++Builder

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 83
    Points : 55
    Points
    55
    Par défaut Un exécutable qui créé un exécutable
    Bonjour,

    Est-ce possible de réaliser un exécutable qui créé un exécutable ? (la réponse est bien sûr oui, mais comment ? une piste ? une idée? ou un débat?)

    Comme par exemple un créateur d'installateur qui créé un installateur .

    Merci

  2. #2
    Membre confirmé Avatar de nemo69500
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 639
    Points : 519
    Points
    519
    Par défaut
    pour créer un executable il te fo deja un compilateur

  3. #3
    Membre actif Avatar de damienlann
    Profil pro
    Étudiant
    Inscrit en
    Mai 2005
    Messages
    293
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2005
    Messages : 293
    Points : 249
    Points
    249
    Par défaut
    a moins qu'il ne veuille faire un compilateur...

  4. #4
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Citation Envoyé par damienlann
    a moins qu'il ne veuille faire un compilateur...
    Dans ce cas la, bon courage!!!

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

    Esque qu'il ne veux pas plutot faire un fichier archive SFX comme le fait WinRar par example !?

    ++

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 83
    Points : 55
    Points
    55
    Par défaut
    Comment ça il me faut un compilateur??
    Prenons l'exemple de Nullsoft qui créé un installateur..
    comment il fait pour créer un exe ?

    Ne me dis pas que que Nullsoft joins un compilateur C++ avec

    il doit y avoir 1 astuce !

  7. #7
    Membre confirmé Avatar de nemo69500
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 639
    Points : 519
    Points
    519
    Par défaut
    a on avis , l executable doit etre deja créer et toi tu ne fais que rajouter des parametre dans des autres fichier , je pense , sinon il dispose vraiment d un compilateur (pas forcement du c++)

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 83
    Points : 55
    Points
    55
    Par défaut
    personne n'a fait ce genre d'application ?

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

    Je croi qu'il y a différentes solutions pour faire un installeur !

    La plus simple à mon avis,c'est de faire un éxecutable qui est capable d'executer certain commandes qui lui seront passé en utilisant un fichier text par example !
    Et lors de la céation ou la configuration de l'installeur(les fichiers à inclure pour être installés aprés,leur déstination lors de l'installation,message à afficher....),un fichier sera créé qui résume tout ces manip,et en plus les fichiers qui vont être installées,seront ajoutés à l'executable lui même comme étant des ressources(comme le fait l'outil "ResHaker" par example)...
    Comme résultat ,on aura un seul fichier(l'executable) qui contient tout les fichier à installer + un fichier text qui contient les informations de ces fichiers et les commandes à éxecuter,donc l'executable (ou l'installeur) n'as qu'à tout éxtraire dans dossier tomporaire,et lire ce qu'il doit faire depuis le ficher text,et commancer l'installation...

    Autres fonction qui devrai faire comme Compression,personnalisation,mise à jours...




    Conclusion: ça dépond de ce que tu veux,et de ce que tu peu faire

    a+

  10. #10
    Membre confirmé Avatar de nemo69500
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 639
    Points : 519
    Points
    519
    Par défaut
    si tu veu un installeur

    http://jeg.developpez.com/jinstaller/

  11. #11
    Membre chevronné
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Points : 1 911
    Points
    1 911
    Par défaut
    Citation Envoyé par echap2000
    personne n'a fait ce genre d'application ?
    Votre question est très générale. On peut toujours charger dans un TMemoryStream un exécutable type et le modifier par programme pour obtenir un autre exécutable. Par exemple, imaginons Project1.exe qui contienne simplement un bouton affichant "Bonjour" sur clic d'un bouton, on peut créer un programme qui lise ce Project1.exe et change Bonjour en Bonsoir et crée Project2.exe sur clic d'un bouton.

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    int L;
    char *F;
    TMemoryStream *MS;
     
    MS=new TMemoryStream();
    MS->LoadFromFile("Project1.exe");
    L=MS->Size;
    F=new char[L];
    MS->Read(F,L);
    Change(F,L,"Bonjour","Bonsoir");
    MS->Position=0; 
    MS->Write(F,L); 
    MS->SaveToFile("Project2.exe");
    delete MS;
    delete[] F;
    Close();
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Change(char* P, int L, char* a, char* n)
    {
    int NbC,i,j,k;
    bool ok;
     
    NbC=strlen(a);
    i=0;
    do
       {
       ok=(Egal(P,i,a));
       if(ok) for(k=0;k<NbC;k++) P[i+k]=n[k];
       if(!ok) ok=(i++==L-NbC-1);
       }
    while(!ok);
    }
    //---------------------------------------------------------------------------
    bool __fastcall TForm1::Egal(char* P, int i, char* a)
    {
    int NbC,j;
     
    NbC=strlen(a);
    for(j=0;j<NbC;j++) if(P[i++]!=a[j]) return false;
    return true;
    }
    À partir de là, même si c'est très rudimentaire (on n'a fait que changer une chaîne en une autre de même longueur), tous les délires sont possibles.

    À bientôt
    Gilles

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 83
    Points : 55
    Points
    55
    Par défaut
    c'est juste ! je viens d'analyser un logiciel qui créait sois-disant un fichier exe mais non ! il renommait un fichier .dll (qui à la base est un Exe) en .exe. Mais il ajoute un fichier à cet exe, (ou modifie cet exe)

    Savez-vous comment ajouter un fichier à un exe ?

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 83
    Points : 55
    Points
    55
    Par défaut
    j'ai écris un mail au créateur d'un logiciel qui fait exactement ce que je veux que ça fasse. et il l'a expliqué :

    [FONT=Tahoma]Salut,

    C'est une technique assez spéciale, en fait les .exe ou .dll sous windows peuvent contenir des ressources et windows permet facilement d'en rajouter via les API de gestion des ressources fichiers. donc dans un premier temps je creer un objet ZipArchiver et j'ajoute tout les fichier qui m'interesse, ensuite je creer un fichier texte qui indique a quel endroit doit s'installer chaque fichier, enfin je demande (via une API windows) a les mettre dans les ressource d'un programme deja creer. Ce programme ce charge d'extraire les ressource qu'il contient. J'ai developpé sa en Delphi voila les API que j'ai utilisé pour acceder au ressources :

    Dans le "compilateur" :
    BeginUpdateResource();
    UpdateResource(); EndUpdateResource();

    Dans l'extracteur :
    FindResource(); LockResource();
    UnlockResource();
    FreeResource();

    [/FONT]

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

    Donc j'avais un peu raison

    ++

Discussions similaires

  1. Fichier exécutable qui ne s'exécute pas ?!
    Par bnadem35 dans le forum Linux
    Réponses: 4
    Dernier message: 12/07/2006, 11h35
  2. Réponses: 8
    Dernier message: 08/05/2006, 20h40
  3. probleme de requete mysql qui ne s'exécute pas
    Par anto48_4 dans le forum Requêtes
    Réponses: 6
    Dernier message: 23/03/2006, 10h51
  4. [MySQL] requete sql qui ne s'exécute pas
    Par anto48_4 dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 16/03/2006, 09h12
  5. [MySQL] update qui ne s'exécute uniquement la deuxième fois !
    Par isa150183 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/01/2006, 09h58

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