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

MFC Discussion :

Peux-t-on avoir un "OUTPUT DIRECTORIES" dynamique


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 37
    Par défaut Peux-t-on avoir un "OUTPUT DIRECTORIES" dynamique
    Bonjour,

    1ère question :

    Est-il possible de d'utiliser une variable d'environnement pour définir dans un projet VC++ le chemin de sortie de mon Exe.

    EX : j'ai une variable d'environnement - BATCH601 = D:\avt\6.0.1\Batch\

    Dans le menu Project->Settings->Link, dans le champs "Output file name", comment faire pour mettre quelque chose du genre :
    [BATCH601]/binbcxtp3.exe

    2ème question :

    Lorsque je lance via VC++ mon Exe en mode debug ou release, est-il possible de dire à VC++ d'exécuter au préalable une commande DOS, comme le fait le menu "Post-build step" au moment de la compilation.


    Merci par avance pour vos réponse.

    Kévin

  2. #2
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 37
    Par défaut
    Je pense avoir trouvé la solution à ma 1ère question :

    Pour utiliser une variable d'environnement il faut mettre par exemple :

    $(BATCH601)binbcxtp3.exe

    Cela marche bien mais l'adresse est relative par rapport au projet VC++.
    Par là je veux dire qu'on ne peut pas mettre par exempe :

    BATCH601 = D:\bin\
    Il faut mettre :

    BATCH601 = ..\..\..\bin\

    Donc si vous avez une solution pour que cela marche avec D:\bin\, je suis tout ouïe.

    Pour la deuxième question, je ne vois toujours pas comment faire.

    Si quelqu'un à des réponse, merci de votre aide

    Kévin

  3. #3
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Pourquoi ça marche pas D:\bin ?
    Pour le 2/, faudrait dire quelle commande / kel est le but.
    Ce qui se fait, c'est de créer un .bat qui fait les SET qu'il faut puis lance VC++. Ainsi il suffit d'éditer le .bat, et de lancer le .bat pour ouvrir le projet.

  4. #4
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 37
    Par défaut
    Pourquoi ça marche pas D:\bin ?
    - Si je tape directement D:\bin\binbcxtp3.exe, ca marche !!
    - Si je crée une variable d'environnement BATCH=D:\ et que je met $(BATCH)binbcxtp3.exe, ca ne marche pas !! J'ai le message d'erreur suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    D:\Source\Maint_6_0_2\devbatchs\bcx\VC++\binbcxtp3\Debug\D:\binbcxtp3.pdb
    Pour la deuxième question, je souhaiterai avant chaque exécution de mon programme, vider le contenu d'un répertoire.

    Je pourrais le faire en C, mais ce n'est pas le but.

    En fait, lorsque je lance mon appli sans VC++, j'avais fait un fichier BAT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    del /F /Q d:\avt\6.0.1\log\*.*
    cls
    binbcxtp3 d:\avt\etc\avtBCP5.ini -NDEC_FM -P0 -MVIR
    Lorsque je lance l'appli via VC++ pour tracer mon programme, je souhaiterai pouvoir lancer automatiquement la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    del /F /Q d:\avt\6.0.1\log\*.*
    Voyez-vous comment peut-on faire ca ?

    Kévin

  5. #5
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    1/ T'es sûr que tu l'utilises pas ailleurs aussi ta variable, notamment dans propriétés->C/C++->Fichiers de sortie ?
    Si tu mets en dur D:\bin\binbcxtp3.exe, mais que tu définis aussi BATCH à "toto" par exemple, ça donne quoi ?

    2/ J'ai jamais essayé, mais apparement c'est possible en changeant la cible à exécuter dans propriétés->Débogage:Action, qui vaut par défaut $(TargetPath). Remplace par ton .bat qui fait le ménage puis lancer l'exe (reçu en paramètre pourquoi pas), et essaye...

  6. #6
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 37
    Par défaut
    1/ T'es sûr que tu l'utilises pas ailleurs aussi ta variable, notamment dans propriétés->C/C++->Fichiers de sortie ?
    Si tu mets en dur D:\bin\binbcxtp3.exe, mais que tu définis aussi BATCH à "toto" par exemple, ça donne quoi ?
    Dans Project->Settings->C++, je ne vois pas le champ Fichiers de sortie ?

    Par contre je viens de trouver la solution à mon problème :
    Lorsque je tapais $(BATCH)/binbcxtp3.exe dans Project->Settings->Link(General)->Output file name,
    cela me changeait automatiquement le champ : Project->Settings->Link(Customize)->Program database name en : Debug/$(BATCH)/liblpxtp3.pdb !! Je l'ai donc changé et maintenant tout marche bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    2/ J'ai jamais essayé, mais apparement c'est possible en changeant la cible à exécuter dans propriétés->Débogage:Action, qui vaut par défaut $(TargetPath). Remplace par ton .bat qui fait le ménage puis lancer l'exe (reçu en paramètre pourquoi pas), et essaye...
    Quand tu parles de propriétés->Débogage:Action, tu parle de Project->Settings->Debug->Executable for debug session ???
    en tout cas, j'ai essayé de mettre un fichier BAT dans ce menu mais VC++ refuse car ce n'est pas un exe.

    Donc, je n'ai toujours pas d'idée comment faire pour ma 2ème question ?

    Kévin

  7. #7
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    J'utilise VC++ 7.1.
    Tu peux spécifier cmd.exe pour lancer ton .bat:
    cmd.exe /C monbat.bat
    ou mieux:
    %comspec% /C monbat.bat
    s'il accepte

Discussions similaires

  1. Quel salaire je peux envisager d'avoir
    Par nikoko45 dans le forum Salaires
    Réponses: 2
    Dernier message: 20/07/2012, 10h38
  2. [Continuum] Api XmlRpc, working-directory/build-output-directory
    Par dev09 dans le forum Intégration Continue
    Réponses: 1
    Dernier message: 23/11/2007, 11h58
  3. Réponses: 4
    Dernier message: 24/03/2006, 22h54
  4. [STRUTS]peux t-on avoir deux versions d'eclipse ...
    Par marc olivier dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 04/01/2005, 08h01

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