CFileDialog导致程序崩溃的解决方案
2013-01-26 09:52
281 查看
写了个小程序,其中有这样的代码:
CFileDialog fileDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, _T("All Files(*.*)|*.*||"));
if(fileDlg.DoModal() == IDOK)
{
CString strPathName = fileDlg.GetPathName();
m_EdtTaskContent.SetWindowText(strPathName);
}
然后程序运行到该处时,偶尔出现程序崩溃的现象,网上查了资料,感觉很复杂,说什么tagOFN大小的问题,CString也有问题。没有搞懂。最后我把代码改成:
CFileDialog fileDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, _T("All Files(*.*)|*.*||"));
if(fileDlg.DoModal() == IDOK)
{
wstring strPathName = fileDlg.GetPathName();
m_EdtTaskContent.SetWindowText(strPathName.c_str());
}
程序就不崩溃了。
CString不好用,以后大家还是多用string和wstring代替吧。
CFileDialog fileDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, _T("All Files(*.*)|*.*||"));
if(fileDlg.DoModal() == IDOK)
{
CString strPathName = fileDlg.GetPathName();
m_EdtTaskContent.SetWindowText(strPathName);
}
然后程序运行到该处时,偶尔出现程序崩溃的现象,网上查了资料,感觉很复杂,说什么tagOFN大小的问题,CString也有问题。没有搞懂。最后我把代码改成:
CFileDialog fileDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, _T("All Files(*.*)|*.*||"));
if(fileDlg.DoModal() == IDOK)
{
wstring strPathName = fileDlg.GetPathName();
m_EdtTaskContent.SetWindowText(strPathName.c_str());
}
程序就不崩溃了。
CString不好用,以后大家还是多用string和wstring代替吧。
相关文章推荐
- vc++6.0STL中std::string类导致程序崩溃的解决方案
- MFC项目使用webbrowser控件,点击载入的页面里的文件下载链接后导致程序的崩溃问题的解决方案
- 关于Fragment中的getActivity()返回null导致程序崩溃的解决方案
- FindContours()函数使用时导致的程序崩溃问题的解决方案
- 安卓从googlephoto上选择云端图片导致程序崩溃的解决方案
- MFC中使用FindContours()函数使用时导致的程序崩溃问题的解决方案
- Windows 1709版本中OneDrive导致绝大多数程序崩溃的解决方案
- 包名重命名,mainfest没有相应更新而导致程序崩溃
- Asp.Net程序目录下文件夹或文件操作导致Session失效的解决方案
- 让程序在崩溃时体面的退出之终极解决方案(SEH+Dump+Unhandled Exception Filter)
- Android 异步网络请求导致的程序崩溃
- 让程序在崩溃时体面的退出之终极解决方案(SEH+Dump+Unhandled Exception Filter)
- 按键精灵 使用LogStart可能会导致程序崩溃
- 【已解决】Android中在新线程中调用Toast.makeText导致程序崩溃
- myeclipse building workspace。导致程序变慢、卡死、不能正常操作的解决方案。
- 让程序在崩溃时体面的退出之终极解决方案(SEH+Dump+Unhandled Exception Filter)
- Android 后台线程弹对话框导致程序崩溃(is not valid; is your activity running)(dialog总是牺牲)
- iOS开发,利用文件流,算大文件的MD5值(程序不会导致内存崩溃)
- 格式程序VC中scanf/sscanf不支持%hhx格式,若使用将可能导致程序错误甚至崩溃
- 引入第三方framework,导致程序崩溃,无崩溃信息。