Use CArchive to write data into CMemFile

在 MFC 中提供了一種稱為 CArchive 的機制

可以使用二進制的方式將一個複雜的物件網路保存到硬碟上

前一篇介紹了怎麼創建和使用 CMemFile 

那這裡就簡介一下怎麼使用 CArchive 來寫入 CMemFile 檔案

 

[實作過程]

其實很簡單就是將原先寫檔的地方註解掉

再宣告 CArchive 來輸出就可以了

CArchive ar( &memDescripFileNew, CArchive::store );
ar.WriteString(as_tokens);
ar.Close();

//memDescripFileNew.Write(as_tokens,as_tokens.GetLength()*sizeof(TCHAR));

 

另外特別的是原先我是使用 ar << as_token 的方式,卻在寫入的字串前出現亂碼

後來知道原來是因為 CArchive 寫入的是二進位格式,開頭會先寫入文件的長度

後來改成 WriteString() 就能夠正常顯示了

 

[參考資料]

1. CArchive Class

2. MFC类库学习——CArchive的学习

2. CArchive 乱码