MFC CFileDialg 保存功能获取下一个完整路径报错怎么回事,怎么解决?

SUN 20 信誉分
2024-07-19T11:59:07.75+00:00

屏幕截图 2024-07-20 152159

void CMainWindow::SavaAs()

{

CString fileName;

wchar_t* p = fileName.GetBuffer(FILE_LIST_BUFFER_SIZE);

TCHAR szFilters[] = _T("MyType Files (*.my)|*.my|All Files (*.*)|*.*||");

DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;

LPCTSTR lpszDefExt = L".xls";//默认的文件扩展名

LPCTSTR lpszFileName = L"默认文件名";

TCHAR szFilter[] = _T("Excel文件(*.xls)|*.xls|Excel 2007 启用宏的工作簿(*.xlsm)|*.xlsm|");//设置文件选择类型

MyFileDialg dlgFile(FALSE, lpszDefExt, lpszFileName, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, _T("All Files (*.*)|*.*||"), this);

CFile file;

if (IDOK == dlgFile.DoModal()) {

    CString Path = dlgFile.GetFileName();

    CString filepath = dlgFile.GetPathName();

    if (file.Open(filepath, CFile::modeCreate | CFile::modeWrite))

    {

        CString data = _T("Hello, World!");

        file.Write(data, data.GetLength() * sizeof(TCHAR));

        // 关闭文件

        file.Close();

    }

    POSITION pos;

    CString path = dlgFile.GetNextPathName(pos);

}

}

C++
C++
一种通用的高级编程语言,作为 C 编程语言的扩展而创建,除了用于低级别内存操作的功能外,还具有面向对象、泛型和功能性等特点。
175 个问题
0 个注释 无注释
{count} 票

1 个答案

排序依据: 非常有帮助
  1. Minxin Yu 13,501 信誉分 Microsoft 外部员工
    2024-07-23T01:13:55.5866667+00:00

    您好,

    POSITION pos; 没有初始化,

    GetNextPathName使用方式请查看之前的回答:
    https://learn.microsoft.com/zh-cn/answers/questions/1824889/mfc-cfiledialg


    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。

    注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。

    0 个注释 无注释

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。