Chemin pas absolu en C

seo610 Messages postés 596 Date d'inscription   Statut Membre Dernière intervention   -  
SchSoftware Messages postés 46 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Sous Windows Vista ou xp, Comment chercher un fichier stoker dans ex:
C:\Users\Personne\Documents
mais que le chemin "Personne" marche sous toute les ordi?
Que peut importe l'utilisateur le programme (en C) marcherais.
merci

3 réponses

SchSoftware Messages postés 46 Date d'inscription   Statut Membre Dernière intervention   3
 
Bonsoir

#include <ShlObj.h>

TCHAR tchPath[MAX_PATH];
if(SHGetSpecialFolderPath(NULL,tchPath,CSIDL_COMMON_DOCUMENTS,false))
{
// le chemin est valide...
}

https://docs.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-shgetspecialfolderpatha?redirectedfrom=MSDN

Je ne sais plus si TCHAR existe en C
Au cas ou, c'est un "char" en MultiByte et WCHAR en Unicode...

Bien à vous
0
seo610 Messages postés 596 Date d'inscription   Statut Membre Dernière intervention   102
 
peut tu expliquer en détail ce qu'il faut faire pour compiler ça?
0
SchSoftware Messages postés 46 Date d'inscription   Statut Membre Dernière intervention   3
 
Bonjours

Il faut inclure le fichier "Shlobj.h"
Linker avec la bibliothèque "Shell32.lib"

Ces opération dépende du compilateur utilisé...

Et Enfin, le code fournit ce suffit a lui même!

Bien à vous
0
seo610 Messages postés 596 Date d'inscription   Statut Membre Dernière intervention   102
 
il me fait
u.o(.text+0x55):u.c: undefined reference to 'SHGetSpecialFolderPath'
0
SchSoftware Messages postés 46 Date d'inscription   Statut Membre Dernière intervention   3
 
Bonsoir

Ce message d'erreur vient d"un compilateur que je ne connais pas, je ne peu pas trop vous aider pour trouver une solution!
Mais de ce que je comprend, il ne trouve pas la définition de la fonction.

Bien à vous
0