我在我的函数中为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;
}
我在这里看到过类似错误的问题,但每个问题都完全不同。希望有人可以帮我解决这个问题。