volevo usare queta api per popolare un listbox con il contenuto di una dir ma ritorna sempre path non valido (ho provato diversi formati) ma nada
if(DlgDirListComboBox(GetDlgItem(hwnd,1006),"\\db\ \2008.db",1006,1003,DDL_DIRECTORY)==0)
volevo usare queta api per popolare un listbox con il contenuto di una dir ma ritorna sempre path non valido (ho provato diversi formati) ma nada
if(DlgDirListComboBox(GetDlgItem(hwnd,1006),"\\db\ \2008.db",1006,1003,DDL_DIRECTORY)==0)
in attesa di capire perchè la suddetta funzione non va ...
preferivo utilizzare la api specializzata per questo lavoro, ma in alternativa e con alcune righe di codice in più, si può fare così:
WIN32_FIND_DATA wfd;
wfd.dwFileAttributes=FILE_ATTRIBUTE_ARCHIVE;
HANDLE hFind=FindFirstFile("db\\*",&wfd);
while(FindNextFile(hFind,&wfd)!=0) {
// eventuali controlli/filtri
SendDlgItemMessage(hwnd,1006,CB_ADDSTRING,0,(LPARA M)wfd.cFileName);
}
FindClose(hFind);
se si vuole un controllo sul path
if(hFind==NVALID_HANDLE_VALUE)
Confrontando i due pezzi di codice mi pare che tu abbia messo nel primo due slash di troppo.
codice:if(DlgDirListComboBox(GetDlgItem(hwnd,1006),"db\\2008.db",1006,1003,DDL_DIRECTORY)==0)
Amaro C++, il gusto pieno dell'undefined behavior.