CFileDialog 在新文件夹单击时崩溃
CFileDialog crashes on new folder click
大家好,我在 MFC 中维护此代码
char szFilters[]= "Text Files(*.txt)|*.txt|Register File Definition Files(*.rgf)|*.rgf|All Files(*.*)|*.*|";
CString fileName;
pEdit->GetWindowText(fileName);
CFileDialog fileDlg (TRUE, "txt", fileName,
OFN_FILEMUSTEXIST | OFN_EXPLORER | OFN_NOCHANGEDIR, szFilters, this);
// Display the file dialog. When user clicks OK, fileDlg.DoModal()
// returns IDOK.
if(IDOK == fileDlg.DoModal())
{
fileName = fileDlg.GetPathName();
pEdit->SetWindowText(fileName);
}
这是Visual Studio消息:
这可能是由于堆损坏,这表示 APP.exe 或其加载的任何 DLL 中存在错误。这也可能是由于用户在 APP.exe 具有焦点时按 F12。输出窗口可能包含更多诊断信息。堆[APP.exe]:00000000077C5DA0 处的堆块在 000000000077C5DB4 修改,请求的大小为 4Windows 在 APP.exe 中触发了一个断点。这可能是由于堆损坏,这表示 APP.exe 或其加载的任何 DLL 中存在错误。这也可能是由于用户在 APP.exe 具有焦点时按 F12。输出窗口可能包含更多诊断信息
当我单击新文件夹时,我收到一个异常,指出我的应用程序.exe触发了一个断点。并且应用程序崩溃。我尝试使用与OFN_EXPLORER等不同的标志,但没有运气。
MSDN 没有提供有关标志的大量信息。 你能帮忙吗?
正如我上面评论的那样,您需要更改过滤器以正确终止(请注意末尾的"||"):
char szFilters[]= "Text Files(*.txt)|*.txt|Register File Definition Files(*.rgf)|*.rgf|All Files(*.*)|*.*||";
不这样做肯定会导致问题,因为过滤器字符串将被解析到其末尾之外。
相关文章:
- QTreeView幻灯片多选后无法使用单击选择
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- QML TableView 使用 QtQuick.Controls 2 单击行
- ImGui 在单击按钮后冻结
- 有没有办法区分Qt小部件是通过鼠标单击还是通过按表键获得焦点?
- 我想使用此代码单击某个特定窗口,但它无法正常工作
- 如何在QSplashScreen中禁用鼠标单击
- 单击一个按钮后创建一个按钮
- C++鼠标单击时的屏幕截图不起作用
- 我的主窗口在创建时或单击更新区域时是否会收到编辑控件?
- 标签检测鼠标单击 c++
- 如何将我的程序添加到文件和文件夹的macOS右键单击菜单?
- 使用 SFML 在矩形的矢量中查找鼠标单击量
- 在单击 QPushButton 时调用带有参数的函数
- 如何在单击按钮FLTK的确切时刻获得小部件的值
- 如何使用鼠标单击选择多个 QLabel 对象?
- WM_PAINT基于按钮单击
- CFileDialog 在新文件夹单击时崩溃
- Gtk::AboutDialog 在单击 URL 时崩溃
- wxWidgets+OpenCV矩形在按钮单击()时崩溃