CXX0030:错误:无法计算表达式

时间:2015-09-03 14:36:05

标签: visual-studio visual-c++ cfiledialog

我在我的函数中为FileDialog定义了一个过滤器,它变成了这个<Badptr> CXX0030: Error: expression cannot be evaluated 评估此过滤器时:Text (*.txt) | *.txt | All (*.*) | *.* ||

对于那种情况,我在那里使用的任何过滤器都会收到此错误。因此,当FileDialog框打开时,我无法看到其中的任何文件,只能看到文件夹。 这是我用于与此FileDialog相关联的Browse按钮的函数。

 void CPhaseDlg::OnPhasebrowse()
  {
    CFileDialog dlg(TRUE, "*.txt",PhaseFileName, OFN_OVERWRITEPROMPT,"Text (*.txt) | *.txt | All (*.*) | *.* ||", NULL);

    if (dlg.DoModal() == IDOK) 
     {
      PhaseFileName = dlg.GetPathName();
      pDoc->PhaseList.Load(PhaseFileName);    
      SetData(0);     
      SetnPhases();
      UpdateData(FALSE);  
     }
  }

如果我在这里遗失某些东西,请告诉我。该项目最初是在VC++ 2005中开发的,现在我正在VC++ 2008中运行。如果有任何兼容性问题,还请告诉我吗?

还有一种方法实际上正常工作,与此类似

UINT CCalcDlg::DoBrowse(CString &name)
{      
   UINT ret;
   UpdateData();
   CFileDialog dlg(FALSE, "*.csv", name, OFN_OVERWRITEPROMPT,"CSV (*.csv)|*.csv|All (*.*)|*.*||" , NULL);

   if ((ret = dlg.DoModal()) == IDOK) 
     {
       name = dlg.GetPathName();
       UpdateData(FALSE);
     }
   return ret;                           
}   

我在这里看到过类似错误的问题,但每个问题都完全不同。希望有人可以帮我解决这个问题。

0 个答案:

没有答案