MFC的CFileDialog和CFile的影响?
CFileDialogsaveDlg(TRUE);saveDlg.m_ofn.lpstrTitle=str.GetBuffer(1);saveDlg.DoModal();...
CFileDialog saveDlg(TRUE);
saveDlg.m_ofn.lpstrTitle=str.GetBuffer(1);
saveDlg.DoModal();
//fileName=saveDlg.GetFileName();
str.Format("D:\\abc.txt");
RecvFile=new CFile(str, CFile::modeWrite |CFile::modeCreate);//RecvFile是我定义的CFile成员变量
saveDlg.DoModal();的加入会导致RecvFile=new CFile(str, CFile::modeWrite |CFile::modeCreate);失败,不知道为什么,求大神解释。
这之前我还有代码如下:
CFileDialog fileDlg(TRUE);
fileDlg.m_ofn.lpstrTitle=str.GetBuffer(1);
fileDlg.DoModal();
fileName=fileDlg.GetFileName();
pathName=fileDlg.GetPathName();
SourFile=new CFile(pathName,CFile::modeRead | CFile::shareDenyNone |CFile::typeBinary);
运行正常,唯一不同的就是此处SourFile为局部变量,而RecvFile是类的成员变量 展开
saveDlg.m_ofn.lpstrTitle=str.GetBuffer(1);
saveDlg.DoModal();
//fileName=saveDlg.GetFileName();
str.Format("D:\\abc.txt");
RecvFile=new CFile(str, CFile::modeWrite |CFile::modeCreate);//RecvFile是我定义的CFile成员变量
saveDlg.DoModal();的加入会导致RecvFile=new CFile(str, CFile::modeWrite |CFile::modeCreate);失败,不知道为什么,求大神解释。
这之前我还有代码如下:
CFileDialog fileDlg(TRUE);
fileDlg.m_ofn.lpstrTitle=str.GetBuffer(1);
fileDlg.DoModal();
fileName=fileDlg.GetFileName();
pathName=fileDlg.GetPathName();
SourFile=new CFile(pathName,CFile::modeRead | CFile::shareDenyNone |CFile::typeBinary);
运行正常,唯一不同的就是此处SourFile为局部变量,而RecvFile是类的成员变量 展开
2个回答
展开全部
CFileDialog saveDlg(TRUE);
saveDlg.m_ofn.lpstrTitle=str.GetBuffer(1);
saveDlg.DoModal();
之后添加语句:
str.ReleaseBuffer();
看看。
saveDlg.m_ofn.lpstrTitle=str.GetBuffer(1);
saveDlg.DoModal();
之后添加语句:
str.ReleaseBuffer();
看看。
追问
貌似不行,会因为new CFile不成功而出现access violention,我发觉saveDlg的hWnd=0,这个是正常的么?我仔细运行发现,不是domodal导致new失败,而是调用domodal过后,执行完domodal程序就自动return,不在往下面继续执行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询