Duplicate possible:
Comment obtenir le nom de l'exécutable de l'application sous Windows (C++ Win32 ou C++/CLI)?
Comment obtenir le nom de fichier et le chemin de l'instance actuelle à partir de mon application Win32 C++ native?
Par exemple; si mon application était c:\projects\testapps\getapppath.exe, il serait capable de dire que le chemin est c:\projects\testapps\getapppath.exe
Vous pouvez le faire via la fonction GetModuleFileName .
TCHAR szFileName[MAX_PATH + 1];
GetModuleFileName(NULL, szFileName, MAX_PATH + 1)
GetCurrentProcess , puis QueryFullProcessImageName
Les autres réponses sont meilleures pour votre propre processus - ceci est préférable pour les réponses distantes. Par les docs :
Pour récupérer le nom de module du processus en cours, utilisez la fonction GetModuleFileName avec un descripteur de module NULL. Cela est plus efficace que d'appeler la fonction GetProcessImageFileName avec un descripteur du processus en cours.
Pour récupérer le nom du module exécutable principal d'un processus distant au format de chemin d'accès win32, utilisez la fonction QueryFullProcessImageName.
Voir GetModuleFileName()
UPDATE: Ne fonctionne que pour les applications console!
Le chemin du programme est passé en tant que premier argument. Il est stocké dans argv[0]
dans la fonction main(argc, argv[])
.
Testé:
int _tmain(int argc, _TCHAR *argv[])
{
_tprintf(L"%s", argv[0]);
return 0;
}
Imprime le chemin complet.