繁体   English   中英

MFC 序列化 C++

[英]MFC serialize C++

我正在尝试在 MFC 中序列化一个列表框。

我使用了这个代码:

CFileDialog fileDlg(FALSE, _T(".txt"), NULL, 0, _T("Text File (.txt)|*.txt|")
        _T("All files (*.*)|*.*||"));

    if (fileDlg.DoModal() == IDOK)
    {
        const int numItems = m_listBox.GetCount();
        CString itemText;
        CStdioFile file;

        if (file.Open(fileDlg.GetFileName(), CStdioFile::modeCreate | CStdioFile::modeWrite))
        {
            for (int i = 0; i < numItems; ++i)
            {
                m_listBox.GetText(i, itemText);
                file.WriteString(itemText);
                file.WriteString(_T("\n"));
            }

            file.Close();
        }

但是保存的文件总是空的。 我尝试了许多从列表框保存到文本文件的函数版本,但没有奏效。

在您的代码中,您使用的是CFileDialog::GetFileName 这是故意的吗? 那只会传入文件

我会使用CFileDialog::GetPathName返回文件的完整路径

并且您应该使用调试器(在调试模式下编译),以便您可以运行您的代码。

CStdioFile::Open方法也可以传递一个指向异常对象的指针。 看看帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM