bonjour,
je voudrai savoir comment je pourrai récupérer le chemin du répertoire dans le quelle se trouve mon application MFC.
merci
bonjour,
je voudrai savoir comment je pourrai récupérer le chemin du répertoire dans le quelle se trouve mon application MFC.
merci
bon je vien de trouver la solution , et je la donne comem :
a+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 LPTSTR lpdir = new TCHAR[256]; GetCurrentDirectory(256, lpdir);
Non, cela te donne le répertoire courant. Si depuis un shell dans la racine (c:\), tu tapes le noms de ton programme avec son chemin complet ("c:\program files\install\mon_programme.exe" par exemple), cela te donnera le nom du répertoire dans lequel tu te trouves (c:\) et pas celui dans lequel se trouve ton programme ("c:\program files\install\")
La seule solution sous Windows est d'utiliser GetModuleFileName ()
Raymond
Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi
CafuroCafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
e-verbeUn logiciel de conjugaison des verbes de la langue française.
Ma page personnelle sur DVP.
Il me semblait qu'on l'avait directement en MFC avec "theApp" non ?
msahli3: Pourquoi allouer ton buffer sur le tas?
Allouer sur la pile suffit:
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 /*Récupère le chemin de l'application*/ TCHAR dir[MAX_PATH]; GetModuleFileName(NULL, dir, MAX_PATH); /*Recherche le dernier séparateur de dossier (je ne suis même pas sûr qu'il soit utile de chercher le /, mais on ne sait jamais)*/ TCHAR *lastSlash = _tcsrchr(dir, _T('/'); TCHAR *lastBackSlash = _tcsrchr(dir, _T('\\'); TCHAR *lastSep = (lastSlash > lastBackSlash ? lastSlash : lastBackSlash); /*Tronque la chaîne à cet endroit*/ *lastSep = _T('\0');
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
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 CString GetModuleDirectory() { TCHAR lpFilename[MAX_PATH]; DWORD dwSize = MAX_PATH; CString strInstallModulePath; if( !::GetModuleFileName(::AfxGetInstanceHandle(), lpFilename, MAX_PATH ) ) { CString strMsg; strMsg.Format("GetModuleFileName failed (%d)\n", ::GetLastError()); AfxMessageBox(strMsg, MB_ICONSTOP); return CString(); } strInstallModulePath = lpFilename; if(strInstallModulePath.IsEmpty()) return CString(); int index = strInstallModulePath.ReverseFind('\\'); if(index == -1) return CString(); return strInstallModulePath.Left(index); // get directory without back slash }
Partager