Bonjour,
Afin de permettre à l'utilisateur de sélectionner ou de créer un nouveau répertoire, j'ai utilisé le code suivant sous visual c++ 6 et sur Windows XP:
Mon problème est le suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 void CTLSDLDlg::OnReglageModifHistorique() { LPMALLOC pMalloc; /* Gets the Shell's default allocator */ if (::SHGetMalloc(&pMalloc) == NOERROR) { BROWSEINFO bi; char pszBuffer[MAX_PATH]; LPITEMIDLIST pidl; // Get help on BROWSEINFO struct - it's got all the bit settings. bi.hwndOwner = GetSafeHwnd(); bi.pidlRoot = NULL; bi.pszDisplayName = pszBuffer; bi.lpszTitle = _T("Création ou sélection du répertoire pour la sauvegarde des fichiers d'historique"); //bi.ulFlags = BIF_EDITBOX; bi.lpfn = NULL; bi.lParam = 0; // This next call issues the dialog box. if ((pidl = ::SHBrowseForFolder(&bi)) != NULL) { if (::SHGetPathFromIDList(pidl, pszBuffer)) { //pszBuffer contient le nom du répertoire } // Free the PIDL allocated by SHBrowseForFolder. pMalloc->Free(pidl); } // Release the shell's allocator. pMalloc->Release(); } }
En mode release, je ne peux ni sélectionner un répertoire, ni en créer un et je vois seulement le bureau alors qu’en mode debug, tout cela m'est bien permis.
Sauriez vous pourquoi et ce que je dois faire pour y remédier ?
Merci
Nicolas![]()
Partager