Originariamente inviato da Paulin
un CFile (visto che si parla di MFC) o un FileStream, oggetti che potrebbero occupare porzioni di memoria anche molto notevoli
Su questo non sarei così sicuro... probabilmente non contengono altro che puntatori a stream (certo non caricano l'intero file in memoria).
Ma tornando a CFileDialog, ho un problema con la stringa dei filtri, quel parametro normalmente indicato con lpszFilter o szFilter, faccio subito un esempio:

codice:
	static char BASED_CODE szFilter[] = "Text Files(*.txt)|*.txt |All Files(*.*)|*.*";
	CFileDialog dlg(TRUE, "TempText", "*.txt", OFN_FILEMUSTEXIST, szFilter, this);

	if (dlg.DoModal() == IDOK){

                     // ...   

	}

Purtroppo accade che all'apertura della finestra di dialogo, nella tendina "Tipo File", mi ritrovo oltre ai miei filtri, una serie di caratteri speciali, il solito sintomo di una memoria sporcata. Sto cercando la soluzione al problema, intanto se qualcuno conoscesse già questo inconveniente e la sua possibile soluzione potrebbe essermi di grande aiuto.

saluti...
Dalla documentazione delle MFC:
The lpszFilter parameter is used to determine the type of filename a file must have to be displayed in the file list box. The first string in the string pair describes the filter; the second string indicates the file extension to use. Multiple extensions may be specified using ';' as the delimiter. The string ends with two '|' characters, followed by a NULL character. You can also use a CString object for this parameter.
Dunque, modifica la linea
codice:
static char BASED_CODE szFilter[] = "Text Files(*.txt)|*.txt |All Files(*.*)|*.*"
così:
codice:
static char BASED_CODE szFilter[] = "Text Files(*.txt)|*.txt |All Files(*.*)|*.*||"