c'est vraiment trés bizarre, j'ai essayé pas mal de choses, en particulier les exemples d'utilisation de la faq visualc++ pour le cfiledialog , et moult autres exemples dédiés à la selection d'un fichier, mais j'arrive toujours au même resultat.
lorsque je veux selectionner un fichier situé sur le bureau windows, la premiere selection se passe parfaitement bien, mais la deuxieme, finit invariablement par faire planter le programme dans son ensemble, sans meme un message, rien.
Petite précison, le plantage ne se produit QUE lorsque c'est le deuxieme fichier que je vais chercher, et exclusivement sur le bureau windows, et que lorsque je passe ma souris sur une icone de fichier existant. le passage sur les liens ne fait pas planter la boite de dialogue..
et ca me donne en mode debug un splendide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 CString t1,t2; t1.LoadString(IDS_STRING32836); //Tous fichiers t2.LoadString(IDS_STRING33285); //Selection du fichier TCHAR file[MAX_PATH]=TEXT(""); TCHAR path[MAX_PATH]=TEXT(""); OPENFILENAME ofn= { sizeof(OPENFILENAME), AfxGetMainWnd()->m_hWnd, NULL, TEXT("all files\0*.*\0\0"), NULL, 0, 1, file, MAX_PATH, NULL, 0, path, TEXT(t2), //"Selection du fichier"), OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST, 0, 0, TEXT("*.*"), 0, NULL, NULL }; int a=GetOpenFileName( &ofn );
unhandled exception in shell32.dll 0x0000000C5 access violation...
et cela ne se produit QUE lorsque c'est la deuxieme fois que je vais selectionner un fichier sur ce satané bureau..
quelques fois aussi, j'ai des faux espoirs, car cela ne se produit que la troisieme fois...
j'ai trouve un poste sur usenet qui pourrait décrire le meme probleme et son eventuelle solution, à savoir augmenter la taille du stack, mais probleme, comment faire sous visual c++6.???
autrement, je suis à la recherche de toute autre solution qui me permettrait de selectionner un fichier à la fois sans faire planter cette satannée dll..
Partager