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 :

[MFC?] Comment récupérer la directory de l'exécutable?


Sujet :

MFC

  1. #1
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut [MFC?] Comment récupérer la directory de l'exécutable?
    bonjour,

    j'aimerais, lors du lancement de mon appli, initialiser des directory comme ça :

    .\blabla
    .\patati
    .\patata

    j'y arrive (c pa dur ) mais lorsque je change une directory pendant l'exécution, les autres ne sont plus valides, par exemple :

    je change la 1è : C:\kelkpar\blabla

    les autres sont :
    .\patati -------> C:\kelkpar\blabla\patati
    .\patata -------> C:\kelkpar\blabla\patata

    pour remédier à ce problème, il faudrait qu'à l'initialisation des directory je mette kelk choz du genre :

    dir_de_mon_exe\blabla
    dir_de_mon_exe\patati
    dir_de_mon_exe\patata

    mais je ne c pas koman récupérer la directory de mon exécutable?
    Can U Help Me ?

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    tu peux recuperer le path en utilisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CWinApp::m_pszHelpFilePath
    qui donne le chemin de l'aide en fait le chemin de l'executable avec hlp a la place de .exe.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2004
    Messages : 318
    Points : 362
    Points
    362
    Par défaut
    Tiens un bout de code d'un de mes progs , si tu comprends pas dis le moi, mais c pas très complexe


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    mkdir("../Images");	// créé le réperoire images dans le rep parent
    char buffer[_MAX_PATH];
    CString currdir = _getcwd( buffer, _MAX_PATH );	//recupere le chemin courant
    CString path;
    path.Format("../Images");
    _chdir(path);	//change le rep courant
    _mkdir("Files");
    _mkdir("NM");
    _chdir(currdir);       // revient au rep de l'exe

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    Citation Envoyé par Guybrush113
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    mkdir("../Images");	// créé le réperoire images dans le rep parent
    char buffer[_MAX_PATH];
    CString currdir = _getcwd( buffer, _MAX_PATH );	//recupere le chemin courant
    CString path;
    path.Format("../Images");
    _chdir(path);	//change le rep courant
    _mkdir("Files");
    _mkdir("NM");
    _chdir(currdir);       // revient au rep de l'exe
    getcwd donne le répertoire courant, pas celui de l'executable

    utilise GetModuleFileName(...)

  5. #5
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    allez, en entier parce que c'est vendredi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	char path[264];
    	char *c;
    	c = path + GetModuleFileName(NULL,path,264);
    	while(*c!='\\')
    		c--;
    	*c=0;
    path contient le répertoire de l'éxecutable

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2004
    Messages : 318
    Points : 362
    Points
    362
    Par défaut
    Certes, c'est du bidouillage, mais ca marche
    Et tout de manière par défaut au début de l'exécution, le répertoire courant correspond a celui de l'exe non ?

  7. #7
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    imaginons que tu crées un raccourci, en changeant le repertoire de travail ; ou bien que dans une console dos, tu appelles le programme depuis un autre repertoire
    ex: ou alors, la modification du répertoire courant par SetCurrentDirectory, etc ...

    Pour toutes ces raisons, mieux vaut utiliser GetModuleFileName

  8. #8
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    oui au départ "." correspond au répertoire de l'exe. le problème c'est que suivant ce que je fé, je change le répertoire courant et "." n'est plus le répertoire de départ, d'où mon soucis (c un effet de bord ke je n'avé pas vu au départ).

  9. #9
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2004
    Messages : 318
    Points : 362
    Points
    362
    Par défaut
    Non justement pour un raccourci ca marche !
    C'est avec GetCurrentDirecory et justement SetCurrentDiractory que ca ne marche pas lorsque l'on créé un raccourci.
    Mais tout de manière ta méthode est plus simple, je la garde dans un coin

  10. #10
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	// Répertoires de config par défaut
    	char path[264]; 
    	char * c; 
    	c = path + GetModuleFileName(NULL,path,264); 
    	while(*c!='\\') c--; 
    	*c=0;
    	m_csConfigDirectory = new CString[3];
    	for (int j=0;j<3;j++) m_csConfigDirectory[j] = path;
    	m_csConfigDirectory[0] += "\\processus\\";
    	m_csConfigDirectory[1] += "\\spi\\";
    	m_csConfigDirectory[2] += "\\capabilite\\";
    ça marche nickel merci bien

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

Discussions similaires

  1. comment récupérer les erreur d'exécution cron
    Par Ohemeg dans le forum RedHat / CentOS / Fedora
    Réponses: 9
    Dernier message: 23/12/2008, 01h10
  2. Réponses: 1
    Dernier message: 05/11/2007, 10h25
  3. [MFC] Comment récupérer ce message ?
    Par julien.nasser dans le forum MFC
    Réponses: 15
    Dernier message: 24/05/2006, 11h38
  4. Réponses: 1
    Dernier message: 19/01/2006, 16h23
  5. Comment récupérer la version d'un exécutable ?
    Par bib34690 dans le forum Langage
    Réponses: 2
    Dernier message: 19/09/2005, 18h20

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