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 :

Problème pour réaliser un executable


Sujet :

C++Builder

  1. #1
    Membre éclairé Avatar de Masmeta
    Homme Profil pro
    Ing. R&D informatique industrielle
    Inscrit en
    Mai 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ing. R&D informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 472
    Par défaut Problème pour réaliser un executable
    Bonjour

    Je programme une application sous C++ builder v4.0. Lors que je fais construire le projet, tous se lance normalement et tout se passe comme prévu. Mais l'executable n'apparait pas ni dans le fichier courant ni dans le fichier project de Borland. Auriez vous une solution?


    Sinon j'ai un warning sur le handle hMutex :[C++ Avertissement] Cathild.cpp(128): W8004 'hMutex' est affecté à une valeur qui n'est jamais utilisée., j'aimerais l'enlever. Auriez vous une solution? Voici le code
    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
    45
    46
    47
    48
    49
    50
    51
    WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
    {
       HANDLE hMutex;
            try
            {
                    hMutex=CreateMutex(NULL,FALSE,"Application");
                    if(GetLastError()==ERROR_ALREADY_EXISTS) return 0;
    		Application->Initialize();
    		Application->Title = "Cathild";
                     SetCurrentDir(ExtractFileDir(ParamStr(0)) + "\\");
    		Application->CreateForm(__classid(TApplicathilde), &Applicathilde);
                     Application->CreateForm(__classid(TFImageGarde), &FImageGarde);
                     Application->CreateForm(__classid(TModifconduite), &Modifconduite);
                     Application->CreateForm(__classid(TProgfacultative), &Progfacultative);
                     Application->CreateForm(__classid(TPassword), &Password);
                     Application->CreateForm(__classid(TChangePassword), &ChangePassword);
                     Application->CreateForm(__classid(TDispersion), &Dispersion);
                     Application->CreateForm(__classid(TCoderegulation), &Coderegulation);
                     Application->CreateForm(__classid(TParamgestener), &Paramgestener);
                     Application->CreateForm(__classid(TConsom), &Consom);
                     Application->CreateForm(__classid(TRalenti), &Ralenti);
                     Application->CreateForm(__classid(TGrillelec), &Grillelec);
                     Application->CreateForm(__classid(TOptimisationregulservo), &Optimisationregulservo);
                     Application->CreateForm(__classid(TNumsortnomsech), &Numsortnomsech);
                     Application->CreateForm(__classid(TOptimisations), &Optimisations);
                     Application->CreateForm(__classid(TReglageSeuils), &ReglageSeuils);
                     Application->CreateForm(__classid(TAfficDebug), &AfficDebug);
                     Application->CreateForm(__classid(TTemps), &Temps);
                     Application->CreateForm(__classid(TEvents), &Events);
                     Application->CreateForm(__classid(TGestentre), &Gestentre);
                     Application->CreateForm(__classid(TCharge), &Charge);
                     Application->CreateForm(__classid(TCourbes), &Courbes);
                     Application->CreateForm(__classid(TChoixSechoir), &ChoixSechoir);
                     Application->CreateForm(__classid(TModifReduite), &ModifReduite);
                     Application->CreateForm(__classid(TModifPassword), &ModifPassword);
                     Application->CreateForm(__classid(TSuperviseurgeneral), &Superviseurgeneral);
                     Application->CreateForm(__classid(TChargement), &Chargement);
                     Application->CreateForm(__classid(TControlManu), &ControlManu);
                     Application->CreateForm(__classid(TGraphique), &Graphique);
                     Application->CreateForm(__classid(TSaisieArticle), &SaisieArticle);
                     Application->CreateForm(__classid(TEnregistrement), &Enregistrement);
                     Application->CreateForm(__classid(TAssistantSechage), &AssistantSechage);
                     Application->CreateForm(__classid(TContinuerCycle), &ContinuerCycle);
                     Application->CreateForm(__classid(TVerrouillage), &Verrouillage);
                     Application->Run();
            }
            catch (Exception &exception)
            {
                     Application->ShowException(&exception);
            }
            return 0;
    Merci pour votre aide

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 118
    Par défaut
    Bonsoir,

    pour ton message d'avertissement, je pense qu'il faut que tu inclus ton

    dans le try. En effet, comme il s'agit là d'un évènement conditionnel, il
    se peut, en cas d'erreur, que le programme ne passe pas dans le try, donc
    ton handle est défini mais pas utilisé. C'est ce que te dis BCB donc je dirais
    que ce bout de code doit résoudre ton second problème :

    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
    45
    46
    47
    48
    49
    50
    51
     
    WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
    {
          try
            {
                    HANDLE hMutex=CreateMutex(NULL,FALSE,"Application");
                    if(GetLastError()==ERROR_ALREADY_EXISTS) return 0;
    		Application->Initialize();
    		Application->Title = "Cathild";
                     SetCurrentDir(ExtractFileDir(ParamStr(0)) + "\\");
    		Application->CreateForm(__classid(TApplicathilde), &Applicathilde);
                     Application->CreateForm(__classid(TFImageGarde), &FImageGarde);
                     Application->CreateForm(__classid(TModifconduite), &Modifconduite);
                     Application->CreateForm(__classid(TProgfacultative), &Progfacultative);
                     Application->CreateForm(__classid(TPassword), &Password);
                     Application->CreateForm(__classid(TChangePassword), &ChangePassword);
                     Application->CreateForm(__classid(TDispersion), &Dispersion);
                     Application->CreateForm(__classid(TCoderegulation), &Coderegulation);
                     Application->CreateForm(__classid(TParamgestener), &Paramgestener);
                     Application->CreateForm(__classid(TConsom), &Consom);
                     Application->CreateForm(__classid(TRalenti), &Ralenti);
                     Application->CreateForm(__classid(TGrillelec), &Grillelec);
                     Application->CreateForm(__classid(TOptimisationregulservo), &Optimisationregulservo);
                     Application->CreateForm(__classid(TNumsortnomsech), &Numsortnomsech);
                     Application->CreateForm(__classid(TOptimisations), &Optimisations);
                     Application->CreateForm(__classid(TReglageSeuils), &ReglageSeuils);
                     Application->CreateForm(__classid(TAfficDebug), &AfficDebug);
                     Application->CreateForm(__classid(TTemps), &Temps);
                     Application->CreateForm(__classid(TEvents), &Events);
                     Application->CreateForm(__classid(TGestentre), &Gestentre);
                     Application->CreateForm(__classid(TCharge), &Charge);
                     Application->CreateForm(__classid(TCourbes), &Courbes);
                     Application->CreateForm(__classid(TChoixSechoir), &ChoixSechoir);
                     Application->CreateForm(__classid(TModifReduite), &ModifReduite);
                     Application->CreateForm(__classid(TModifPassword), &ModifPassword);
                     Application->CreateForm(__classid(TSuperviseurgeneral), &Superviseurgeneral);
                     Application->CreateForm(__classid(TChargement), &Chargement);
                     Application->CreateForm(__classid(TControlManu), &ControlManu);
                     Application->CreateForm(__classid(TGraphique), &Graphique);
                     Application->CreateForm(__classid(TSaisieArticle), &SaisieArticle);
                     Application->CreateForm(__classid(TEnregistrement), &Enregistrement);
                     Application->CreateForm(__classid(TAssistantSechage), &AssistantSechage);
                     Application->CreateForm(__classid(TContinuerCycle), &ContinuerCycle);
                     Application->CreateForm(__classid(TVerrouillage), &Verrouillage);
                     Application->Run();
            }
            catch (Exception &exception)
            {
                     Application->ShowException(&exception);
            }
            return 0;

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

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Par défaut
    moi je vote plutot pour un
    à la fin de ton try.

    Pr ton exe, t'as cherché sur le disque? histoire de voir où il le met

    Cordialement

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

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Par défaut
    Citation Envoyé par Xav++
    En effet, comme il s'agit là d'un évènement conditionnel, il
    se peut, en cas d'erreur, que le programme ne passe pas dans le try,
    Pourquoi ne rentrerait-il pas ds le try????

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 118
    Par défaut
    en effet, je viens de faire un test chez moi. C'est stupide ce que je dis. Il
    rentre forcément dans le try

    Ce doit être la fatigue (on se console comme on peut)

    @+

    Xav

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

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Par défaut
    ça arrive


  7. #7
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Pour creer ton executable il faudrait voir si comme sur BCB6 il ne faut pas decocher des cases.
    Voir les deux images jointes.

  8. #8
    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 !
    Citation Envoyé par blondelle
    Pour creer ton executable il faudrait voir si comme sur BCB6 il ne faut pas decocher des cases.
    Voir les deux images jointes.

    Je croi que tout le monde est fatigué aujourdh'ui lol, parceque la, quelque soit les cases cochées, si l'exe est lancé depuis BCB, il doit sûrement être quelque part dans ton disque

    Essayer de faire <Enregistrer le projet sous>, et reconstruit tout pour voire s'il n'est pas dans le même repertoire que celui du fichier projet que tu vien d'enregistrer, sinon vérifi si le chemin de la sortie final de l'exe généré, n'est pas changé, ç à d dans :
    Projet->Options->Repertoires/Conditionnel->Sortie final


    Bonne chance

  9. #9
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Masmeta a ecrit:
    Mais l'executable n'apparait pas ni dans le fichier courant ni dans le fichier project de Borland
    Il ne parle pas d'autre chose que de l'executable donc apparament il sait ou sont ses sources, si il lui manque que l'exe c'est qu'il n'est pas cree, je pense.
    A+

  10. #10
    Membre éclairé Avatar de Masmeta
    Homme Profil pro
    Ing. R&D informatique industrielle
    Inscrit en
    Mai 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ing. R&D informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 472
    Par défaut
    Bonjour

    Donc pour le hMutex, le probleme est résolu. Merci beaucoup.

    Pour l'exe, c'est pas encore cela. Je l'ai biensur cherché sur le disque mais introuvable ( bon peut etre que le chien windows, il est pas bon ). Au niveau de la sortie final, cela n'a pas été renseigné. J'ai mis un chemin mais toujours pas d'exe.

    Je sais ou sont mes sources, et les fichiers obj et asm sont bien généré. Blondelle j'ai fait la solution que tu m'as proposé mais il me demande les fichiers bpi. Et je ne les ai pas trouvé non plus. Est ce que cela ne viendrait pas d'une mauvaise install de BCB4?

  11. #11
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut Masmeta:
    Sur BCB4 je ne vais pas pouvoir te renseigner je ne l'ai jamais utilise, il y a surement quelqu'un qui pourra te renseigner correctement.
    Ce que je sais avec BCB6 tu fais "enregistrer sous" et c'est toi qui donne l'endrois ou tu souhaite sauvegarder l'ensemble de ton programme, en principe tous les fichiers sources et EXE sont dans le meme dossier.
    Les vues des cases a decocher que je t'ai envoyes te permettent de creer un EXE independant de BCB, donc portable sur un autre ordinateur sans BCB.

  12. #12
    Membre éclairé Avatar de Masmeta
    Homme Profil pro
    Ing. R&D informatique industrielle
    Inscrit en
    Mai 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ing. R&D informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 472
    Par défaut
    Normalement sur BCB4, c'est la meme chose pour l'enregistrement. J'avais lu la FAQ pour faire l'execution sans BCB mais j'ai toujours le problème des bpi, il ne les trouvent pas. Et moi non plus avec l'ami google

  13. #13
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Chez moi j'ai des fichiers .bpi sous le chemin suivant:
    programme files->borland cbuilder6->install->program files->borland->cbuilder6->include->Lib

  14. #14
    Membre éclairé Avatar de Masmeta
    Homme Profil pro
    Ing. R&D informatique industrielle
    Inscrit en
    Mai 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ing. R&D informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 472
    Par défaut
    ok merci. Sinon j'ai enlever les versions antérieurs à la version 4, ceux qui sont nommé XXX35. Mais j'ai toujours le meme problème l'exe n'apparait pas. Je tente une réinstallation et on vera bien ....

  15. #15
    Membre éclairé Avatar de Masmeta
    Homme Profil pro
    Ing. R&D informatique industrielle
    Inscrit en
    Mai 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ing. R&D informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 472
    Par défaut
    bon la réinstallation de builder n'a pas solutionné le problème. J'ai effectue un projet simple où j'ai juste mis un label. Et bien dans le fichier du projet, j'ai un exe de créé.

    Pour mon projet, je n'ai toujours rien au niveau exe pour tant à la compilation tout se construit.

  16. #16
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Masmeta a ecrit:
    bon la réinstallation de builder n'a pas solutionné le problème. J'ai effectue un projet simple où j'ai juste mis un label. Et bien dans le fichier du projet, j'ai un exe de créé.
    Donc ce n'est pas une erreur BCB.
    Pour mon projet, je n'ai toujours rien au niveau exe pour tant à la compilation tout se construit.
    Il y a peut etre une erreur dans ton programme, sinon je ne vois pas

  17. #17
    Membre éclairé Avatar de Masmeta
    Homme Profil pro
    Ing. R&D informatique industrielle
    Inscrit en
    Mai 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ing. R&D informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 472
    Par défaut
    J'en tire les meme conclusions que toi, mais le hic c'est que le programme est très long et pas de moi.

    Ce qui est marrant c'est que quand je veux executer le programme par le BCB, j'ai le chemin de l'executable. Je m'empresse d'y aller mais il n'y a rien


    Ca commence à


  18. #18
    Membre éclairé Avatar de Masmeta
    Homme Profil pro
    Ing. R&D informatique industrielle
    Inscrit en
    Mai 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ing. R&D informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 472
    Par défaut
    J'ai compilé et construit sur un autre poste. J'obtiens bien l'exe. Mais sur mon poste à moi, je n'arrive toujours pas à avoir un exe de ce foutu projet

  19. #19
    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
    Voila une solution difitive(pour ma part) pour trouver ton exe !

    Essaye d'ajouter un bouton ou tu veux, et dans son evênement OnClick, tu écris ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    AnsiString CheminDeMonExe=Application->ExeName;
     
    ShellExecute(Handle,"Open","explorer",("/select,"+CheminDeMonExe).c_str(),NULL,SW_SHOWNORMAL);
    Normalment, une nouvelle fenêtre de l'explorer s'ouvre en selectionnant ton exe !

    Donc, si ça marche pas, ça rentre pas dans ma tête



    Bonne chance !

  20. #20
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Dans le menu Projet->Options tu a la boite de dialog de configurations dans l'onglet Directories/Conditionals tu peut configurer des chemins, je te joind une copie d'ecran de ma configuration.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. problème pour réaliser un état
    Par popofpopof dans le forum IHM
    Réponses: 12
    Dernier message: 25/08/2008, 23h17
  2. Problème pour lancer un executable java
    Par Niun dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 19/05/2006, 17h30
  3. Réponses: 2
    Dernier message: 22/01/2006, 01h11
  4. [CLASSPATH] problème pour réaliser la commande javac
    Par nana1 dans le forum Général Java
    Réponses: 3
    Dernier message: 25/10/2005, 15h47

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