Chemin par defaut qui change......

Résolu
Signaler
Messages postés
35
Date d'inscription
jeudi 12 septembre 2002
Statut
Membre
Dernière intervention
25 octobre 2006
-
Messages postés
35
Date d'inscription
jeudi 12 septembre 2002
Statut
Membre
Dernière intervention
25 octobre 2006
-
Voila mon problème,

J'ai programmé une fonction de log qui écris toujours dans le même
fichier, mais lorsque j'ai rajouté du win32 dans mon code il a commencé
a se comporter bizarrement :



Je me sert de la fonction GetOpenFileName() pour afficher un
filechooser. Tous les appels a ma fonction de log avant ce
GetOpenFileName() marchent bien, mais apres l'appel fatidique, mon
fichier de log est créé dans le dossier que m'a retourné
GetOpenFileName().



Un probleme similaire m'etait deja arrivé il ya longtemps, mais il s'etait resolu tout seul.

Si qqun a une idée, merci d'avance
wizzo

7 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
OFN_NOCHANGEDIR

ciao...
BruNews, MVP VC++
Messages postés
23
Date d'inscription
dimanche 11 avril 2004
Statut
Membre
Dernière intervention
19 novembre 2019

fais voir ce morceau de ton code stp.
Messages postés
11
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
9 octobre 2010

Simple tu indique l'adresse complete du fichier log



char dos[MAX_PATH];

_getcwd(dos,MAX_PATH);

Permet de récupéré l'adresse ou pointe ton prog.



_chdir(dos);

Permet de définir l'adresse ou pointera ton prog.



@+
Messages postés
35
Date d'inscription
jeudi 12 septembre 2002
Statut
Membre
Dernière intervention
25 octobre 2006

ceci est le bout de code qui affiche la dialog



char * getOpenFileName(char * title){



OPENFILENAME ofn;

char * filepath = new char[260];

char szFile[260];

HWND hwnd;

HANDLE hf;



ZeroMemory(&ofn, sizeof(ofn));

ofn.lStructSize = sizeof(ofn);

ofn.hwndOwner = NULL;

ofn.lpstrFile = szFile;

ofn.lpstrFile[0] = '\0';

ofn.nMaxFile = sizeof(szFile);

ofn.lpstrFilter = "Image Files\0*.PNG;*.DDS;*.TGA;*.BMP;*.JPG\0";

ofn.nFilterIndex = 1;

ofn.lpstrFileTitle = NULL;

ofn.lpstrTitle = title;

ofn.nMaxFileTitle = 0;

ofn.lpstrInitialDir = NULL;

ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;



if(GetOpenFileName(&ofn)){

memcpy(filepath, ofn.lpstrFile, 260);

return filepath;

}



return NULL;

}



et la fonction de log est ici : http://www.ece.fr/~miffre/public/dev/addToLog.cpp


wizzo
Messages postés
35
Date d'inscription
jeudi 12 septembre 2002
Statut
Membre
Dernière intervention
25 octobre 2006

ah, 2 minutes trop tard pour voir ta reponse topscritch =)

je vais essayer ça tout de suite


wizzo
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
ben oui, ton GetOpenFileName() change ta currentDirectory, ajoute le flag de NON changement.

ciao...
BruNews, MVP VC++
Messages postés
35
Date d'inscription
jeudi 12 septembre 2002
Statut
Membre
Dernière intervention
25 octobre 2006

problem resolu en moins d'1/2 heure =)

merci bcp tout le monde

ces fonction _getcwd/_chdir peuvent etre tres utiles



a++ et merci encore
wizzo