CFileDialog crash

HI all,

I have an application written in MFC6 which uses the CFileDialog class.
On a particular machine, as you are navigating around directories, the application will suddonly terminate - no message!
I do not get this issue on other machines, so I believe that there may be an old (or new) DLL on the PC.
I have checked comdlg32.dll and it is dated 04/2008 on both machines.

Any thoughts?

James
void CMainFrame::OnMaintenanceAudiosettingWavfileselection() 
{
	CString szFilter(	"Audio Files (*.wav)|*.wav|All Files (*.*)|*.*||");
	CString x_filename;
	CFileDialog x_file_dialog(TRUE, "Wav", "Untitled", OFN_OVERWRITEPROMPT, szFilter, NULL);
	if (x_file_dialog.DoModal() == IDCANCEL) return;
	x_filename = x_file_dialog.GetPathName();
	if (x_filename.IsEmpty() != 0) return;
	DoSomething(x_filename);
	return;
}

Open in new window

LVL 4
James AtkinSenior Principle Software EngineerAsked:
Who is Participating?
 
LordOfPortsCommented:
I would recommend few steps:

1. Enclose the function body code in a try { } catch { } block just in case

2. Instead of checking for IDCANCEL try checking for IDOK
CString szFilter("Audio Files (*.wav)|*.wav|All Files (*.*)|*.*||");
CString x_filename;
CFileDialog x_file_dialog(TRUE, "Wav", "Untitled", OFN_OVERWRITEPROMPT, szFilter, NULL);
	
 
if (x_file_dialog.DoModal() == IDOK) {
	x_filename = x_file_dialog.GetPathName();
	
	if (x_filename.IsEmpty() == 0) {
		DoSomething(x_filename);
	}
}
 
x_filename.ReleaseBuffer();

Open in new window

0
 
DanRollinsCommented:
jatkin,
Did that help you?  If not, please describe exactly where you are browsing, and perhaps other settings that are in use when browsing (eg icon view, thumbnail view, etc.).  It is important to respond to each comment posted by each Expert.
0
 
James AtkinSenior Principle Software EngineerAuthor Commented:
Sorry, I should have posted this...
There was actually some issue with the OS installation on the PC we were using!
After a reinstall, it works fine.
I have however put LordOfPorts code to catch this should it occur again.
Thanks for the help,
James
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.