MFC中的CFileDialog问题.下面代码看似没有问题,但是拿到程序中会导致程序崩溃
第一次打开CFileDialog时没问题,但第二次打开时就会出现问题,导致程序崩溃,何解?staticcharBASED_CODEszFilter[]="MP3Files...
第一次打开 CFileDialog时没问题,但第二次打开时就会出现问题,导致程序崩溃,何解?
static char BASED_CODE szFilter[] = "MP3 Files (*.mp3)|*.mp3|AVI Files(*.avi)|*.avi|WAV Files(*.wav)|*.wav|WMA Files(*.wma)|*.wma||";
CFileDialog* fDlg=new CFileDialog(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter,NULL);
if(fDlg->DoModal()==IDOK)
{
m_Path = fDlg->GetPathName();
if(m_Path=="") return;
}
CString filename = fDlg->GetFileName(); 展开
static char BASED_CODE szFilter[] = "MP3 Files (*.mp3)|*.mp3|AVI Files(*.avi)|*.avi|WAV Files(*.wav)|*.wav|WMA Files(*.wma)|*.wma||";
CFileDialog* fDlg=new CFileDialog(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter,NULL);
if(fDlg->DoModal()==IDOK)
{
m_Path = fDlg->GetPathName();
if(m_Path=="") return;
}
CString filename = fDlg->GetFileName(); 展开
展开全部
最好不要用指针去这样做,直接这样CFileDialog fDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter,NULL);
这样就一定不会出问题,
而你高尘型用的兄纤是指针的方法,CFileDialog* fDlg=new CFileDialog(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter,NULL);
指针的不安全,一般不适用在MFC,
如果一戚猜定要的,看看谁否delete fDlg;
了吗。因为CFileDlog会占用很多资源的,要释放的
这样就一定不会出问题,
而你高尘型用的兄纤是指针的方法,CFileDialog* fDlg=new CFileDialog(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter,NULL);
指针的不安全,一般不适用在MFC,
如果一戚猜定要的,看看谁否delete fDlg;
了吗。因为CFileDlog会占用很多资源的,要释放的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询