gpt4 book ai didi

c++ - 单击新文件夹时 CFileDialog 崩溃

转载 作者:行者123 更新时间:2023-11-30 02:51:15 26 4
gpt4 key购买 nike

大家好,我在 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。输出窗口可能有更多的诊断信息。HEAP[APP.exe]:00000000077C5DA0 处的堆 block 修改为 00000000077C5DB4 过去请求的大小为 4Windows 已在 APP.exe 中触发断点。这可能是由于堆损坏,这表明 APP.exe 或它加载的任何 DLL 中存在错误。这也可能是由于用户在 APP.exe 具有焦点时按了 F12。输出窗口可能有更多的诊断信息



当我单击新文件夹时,出现异常,提示我的 app.exe 已触发断点。并且应用程序崩溃了。我尝试使用 OFN_EXPLORER 等不同的标志,但没有成功。

MSDN 没有提供很多关于标志的信息。你能帮忙吗?

最佳答案

正如我在上面评论的那样,您需要更改过滤器才能正确终止(注意末尾的“||”):

char szFilters[]= "Text Files(*.txt)|*.txt|Register File Definition Files(*.rgf)|*.rgf|All Files(*.*)|*.*||";

不这样做肯定会导致问题,因为过滤字符串将被解析超出其结尾。

关于c++ - 单击新文件夹时 CFileDialog 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19866912/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com