Problème d'ouverture de fichier après GetOpenFileName

Signaler
Messages postés
115
Date d'inscription
samedi 29 mars 2003
Statut
Membre
Dernière intervention
19 décembre 2008
-
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
-
salut à tous !

après avoir fouillé a peu près de partt, et écumé tte les solutions, je
me décide à exposer mon probleme, dans l'espoir ke kelkun pourra
m'aider !

je m'explik :

lorsque je veu ouvrir un fichier ( n'importe lequel ), après
avoir initialisé ma structure OPENFILENAME et utilisé GetOpenFileName,
il m'est impossible d'ouvrir un fichier !!

pourtant la fonction GetOpenFileName ne renvoi aucune erreur, je
peu ouvrir le fichier ke j'ai selectionné, mais aucun autre ! j'utilise
fopen pour ouvrir le fichier, ms celle ci me renvoi une erreur et
quitte mon prog



voici mon code :



OPENFILENAME fdlg;

char filename[256];

ZeroMemory(filename, sizeof(filename));

ZeroMemory(&fdlg, sizeof(fdlg));



fdlg.lStructSize =sizeof(OPENFILENAME);

fdlg.hwndOwner=NULL;

fdlg.hInstance=NULL;

fdlg.lpstrFilter= TEXT("Images Bitmap (*.bmp)\0*.bmp\0\0");

fdlg.lpstrCustomFilter=NULL;

fdlg.nMaxCustFilter=1;

fdlg.nFilterIndex=1;

fdlg.lpstrFile=filename;

fdlg.nMaxFile=sizeof(filename);

fdlg.lpstrFileTitle=NULL;

fdlg.nMaxFileTitle=NULL;

fdlg.lpstrInitialDir = NULL;

fdlg.lpstrTitle="Choisir une image";

fdlg.Flags=OFN_FILEMUSTEXIST;

fdlg.Flags=OFN_CREATEPROMPT;

fdlg.Flags=OFN_EXPLORER;

fdlg.lpstrDefExt =NULL;

fdlg.lCustData=NULL;

fdlg.lpfnHook=NULL;

fdlg.lpTemplateName=NULL;

filename[0]='\0';



GetOpenFileName(&fdlg);



dès ke j'execute se bout de code, il m'est impossible d'utilisé fopen,
quelque soit le fichier et quelque soit le mode d'ouverture, sans ke le
fonction me renvoi une erreur

g pourtt deja utilisé cette fonction plein de fois sans aucun prob



y a t il une erreur ds mon code, ki ferai planté mon prog, dès ke j'utilise fopen ???



dans l' attante d'une réponse, je vs remerci



-{ Saifer }-

3 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Fais un MessageBox sur filename pour voir si est bon.

ciao...
BruNews, MVP VC++
Messages postés
115
Date d'inscription
samedi 29 mars 2003
Statut
Membre
Dernière intervention
19 décembre 2008
1
filename est le bon, je vien enfin de trouver, après 2 semaine de recherche.
merci kan mem BruNews d'avoir répondu si rapidement !

en fait ce ke j'avai pa pensé c kan j'ouvre un fichier avec GetOpenFileName, ca me change le répertoire courrant.
mes fichiers ke j'essayai d'ouvrir se trouvai ds le repertoire de mon prog, donc si le repertoire courrant changai sa ne pouvai me trouver mes fichier.

un simple SetCurrentDirectory suffi a reglé le prob

-{ Saifer }-

merci encore BruNews d'avoir répondu.
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
fdlg.Flags=OFN_FILEMUSTEXIST;
fdlg.Flags=OFN_CREATEPROMPT;
fdlg.Flags=OFN_EXPLORER;

=> seul le dernier flag sera pris en compte, il faut faire un OU des flags :
fdlg.Flags=OFN_FILEMUSTEXIST | OFN_CREATEPROMPT | OFN_EXPLORER