MFC 中用ShellExecute执行文件后,无法关闭对话框,出现“没有找到 一未命名文件”

在对话框中点“浏览按钮”,出现文件选择框,打开文件后,就无法关闭对话框了相关的打开文件按钮如下:voidCShipinDlg::OnScan(){//TODO:Addyo... 在对话框中点“浏览按钮”,出现文件选择框,打开文件后,就无法关闭对话框了
相关的打开文件按钮如下:
void CShipinDlg::OnScan() { // TODO: Add your control notification handler code here UpdateData(TRUE); CFileDialog fileDlg(TRUE); fileDlg.m_ofn.lpstrFilter="All Files(*.avi)\0*.avi\0\0"; fileDlg.m_ofn.lpstrDefExt="*.avi"; CString m_open; CString m_filename; if(IDOK==fileDlg.DoModal()) { CFile file(fileDlg.GetFileName(),CFile::modeRead); m_open=fileDlg.GetPathName();//文件名+后缀 m_filename=fileDlg.GetFileName(); UpdateData(FALSE); } ShellExecute(NULL,"open",m_filename,NULL,"e:\\",NULL); }

关闭主对话框时出现

这是怎么回事呢?
展开
 我来答
bhtzu
2013-09-24 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4263万
展开全部
void CShipinDlg::OnScan() 
{
 // TODO: Add your control notification handler code here
 UpdateData(TRUE);
 CFileDialog fileDlg(TRUE); 
 fileDlg.m_ofn.lpstrFilter="All Files(*.avi)\0*.avi\0\0";
 fileDlg.m_ofn.lpstrDefExt="*.avi";
 //CString m_open;
 CString m_filename;
 
 if(IDOK==fileDlg.DoModal()) 
 {  
  //CFile file(fileDlg.GetFileName(),CFile::modeRead); //这是一个无用语句,去掉
  //m_open=fileDlg.GetPathName();//这个也没用,去掉
  m_filename=fileDlg.GetFileName();
  UpdateData(FALSE);  
 } 
 ShellExecute(NULL,"open",m_filename,NULL,"e:\\",NULL); 
}

报错可能是和CFile语句有关

更多追问追答
追问
我已经去年了,但还是报错,在网上查,说是使用了相对路径,但是我这个不涉及这上问题啊
追答
看看是不是文件名和路径的问题吧,把文件改名a.avi,然后放到e盘根目录,打开试试。
另外,ShellExecute是抛出式壳执行,先双击打开文件看看有没有问题。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式