[英]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.