0
我在MFC程序中創建了一個雙向鏈表。 每當我想加載變量,程序崩潰。我不能創建一個新的節點。 有誰知道如何序列化一個雙向鏈表。MFC序列化雙向鏈表
這裏是我的功能:
void CDatenbankDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
Actual = Start;
while (Actual)
{
ar << Actual->name;
ar << Actual->adresse;
ar << Actual->email;
ar << Actual->fax;
ar << Actual->firma;
ar << Actual->geburtsdatum;
ar << Actual->geschlecht;
ar << Actual->land;
ar << Actual->ort;
ar << Actual->plz;
ar << Actual->telefon;
ar << Actual->vorname;
Actual = Actual->next;
}
}
else
{
Actual = Start;
while (InsertedAll != true)
{
Actual->next = new Node;
Actual->next->previous = Actual;
ar >> Actual->next->name;
ar >> Actual->next->vorname;
ar >> Actual->next->adresse;
ar >> Actual->next->email;
ar >> Actual->next->fax;
ar >> Actual->next->firma;
ar >> Actual->next->geburtsdatum;
ar >> Actual->next->geschlecht;
ar >> Actual->next->land;
ar >> Actual->next->ort;
ar >> Actual->next->plz;
ar >> Actual->next->telefon;
Actual = Actual->next;
if (!Actual->next)
{
InsertedAll = true;
}
}
}
}
您的基本問題是,當您存儲鏈接列表時,您不會存儲任何指示列表何時結束的內容。我不確定當你閱讀這份名單時你期望發生什麼魔法。如何首先存儲列表的* length *。然後你的閱讀程序可以使用這個值來判斷何時停止閱讀。 – john
你確定'實際=實際 - >下一步;'沒有任何檢查? – Zigma
知道列表何時結束的最好方法是首先遍歷列表並獲取成員的數量。先寫入流中。就像所有其他MFC容器使用歸檔流一樣。 – xMRi