Si, anche io penso che in questo caso una allocazione automatica sia sufficiente e anche a scanso di equivoci, soprattutto se l'oggetto CFileDialog è contenuto in un blocco ben delimitato all'interno del programma.
Personalmente l'allocazione dinamica la vedrei meglio per oggetti di dimensioni più imprevedibili come ad esempio un CFile (visto che si parla di MFC) o un FileStream, oggetti che potrebbero occupare porzioni di memoria anche molto notevoli, e pertanto una deallocazione esplicita potrebbe diventare molto conveniente.
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...

Rispondi quotando