我发现,如果一个函数的返回类型为CString,如下:
CString CMfc2App::OnAppAbout()
{
CString csPath;
CFileDialog dlg(true);
if(dlg.DoModal()==IDOK)
{
csPath = dlg.GetPathName();
}
return csPath;
}运行就会抱错,好奇怪啊如果函数无返回值,就正常,大虾们帮我解答下 :)

解决方案 »

  1.   

    当然能返回CString类型了
    问题是你在那里使用?
      

  2.   

    OnAppAbout是事件响应函数吧?事件响应函数不能有返回值(返回值也没有意义)。
      

  3.   

    刚刚我又调试了下发现只要在 stdafx.h 中定义了 #define _WIN32_WINNT 0x0500 用CFileDialog 就会出错
    不定义这个就正常。郁闷了...
      

  4.   

    可以改为在OnAppAbout()中调用一个函数,如TEST();
    由TEST()来返回一个CString类型,并保存在一个变量里,
      

  5.   

    问题找到了
    是CFileDialog 在vc6 + 2003PSDK的bug解决方法:1.改为getOpenFileName
            2.改用vs2003