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