MFC 序列化問題,MFC 序列化

2025-03-10 02:10:20 字數 3142 閱讀 4441

1樓:少有人教的那些事

如果你new出來乙個跟以前的一樣那當然不用序列化了, 所以也並不是什麼類都被序列化儲存了的吧。

但是有些類在執行過程中裡面儲存了一些資訊, 改變了一些引數, 那麼當你重新new乙個,這些東西就丟掉了,它的表現就跟你之前的不一樣了, 當然你可以寫個建構函式把這些改變的部分全都作為引數,不過這不也一樣麻煩麼。 其實序列化就是乙個統一的,儲存這些引數的過程。

至於你儲存文字檔案有沒有序列化的過程, 這問題其實毫無意義, 序列化衡纖是程式設計當中的概念, 有沒有這個過程是程式設計師決定的, 寫記事本那人到底用沒用序列化誰知道呢。 基本上這個簡單的事是不會用,不過他要是腦子進水非要用這玩意我也攔不住他不是麼。

在學習喚氏的過程中你要知道,你看到的一系列技術方法之類的都只是工具,不是說非要用上才算是程式設計了, 用不用,怎麼用,都是人來選擇的, 你和攔散要是就覺得他沒用那就不用好了,沒它地球一樣轉。

2樓:第爵

應該是對棗純則象呼叫用它的序列函式void cline::serialize( carchive& ar ) 每個序列物件呼叫。

而你只建立了乙個物件line1 ,它的序列儲存只能一次,因為只有乙個物件;乙個物件乙個序列資訊儲存;

這不同於離散的資料型別資訊儲存,和類的序列化類巨集設定有關,也可這樣理解,既然你儲存一次了,那巨集可判斷再儲存這褲正個物件資訊就沒必要了。

呼叫方式:cline line1 (cpoint (0, 0), cpoint (50, 50));

cline line2 (cpoint (50, 50), cpoint (100, 0));

cfile file (_t ("abc"),cfile::modecreate | cfile::modewrite);

);就凳棚可以了,下次再呼叫,就沒意義了。

保持原儲存資訊。

就這些了,有機會交流交流。

mfc 序列化

3樓:網友

乙個物件第二次儲存的時候只會儲存這個物件的索引,不會再儲存該物件的值,而且根本不會呼叫cmyshape的serialize函式,所以type=2這個值並沒有被儲存到檔案中,讀取的時候也是一樣,第一次讀取了cmyshape的內容,第二次讀的時候發現已經存在,不會呼叫serialize函式。

mfc序列化為什麼要用到物件指標實現序列化啊

4樓:網友

你建立了乙個類cperson,這個類如果沒有過載<< 你卻用《來進行序列化肯定是錯誤的。

至於第二句為什麼對,因為&是取位址,相當於乙個整形,而整形序列化是預設就支援的。so~

mfc中如何序列化crect

5樓:網友

crect類序列化沒有問題,應該是你其它**有誤。

這個類是rect結構派生的,可以使用結構體序列化更安全。

ar<<(rect)rect;

mfc基本對話方塊的序列化函式

6樓:世冷桖

void craddoc::serialize(carchive& ar)

else然後在任何乙個做了修改的地方呼叫 該類的setmodifiedflag();即可。

mfc 基於對話方塊的程式到底支不支援類物件的序列化?

7樓:

基於對話方塊的程式是支援序列化的,樓主自定義的類及其實現都沒問題,應該是主程式有誤。

能被序列化的有基本資料型別int/float/char/cstring等,cobject類及其派生類物件;mfc應用程式實現類的序列化必須滿足以下4個條件:(1)類必須直接或間接地從cobject類派生而來;(2)類必須定義乙個不帶引數的建構函式,當從磁碟檔案載入文件時呼叫該建構函式來建立乙個可序列化的物件,使用從檔案中讀出來的資料填充物件的成員變數;(3)在類的標頭檔案中使用declare_serial巨集,在類的實現檔案中使用implement_serial巨集;(4)在自定義類中過載序列化成員函式serialize()。

int m_nindex = 2012;

cstring m_strname = t(「programmer」);

cstring m_strcode = t(「c++」

cdata data(m_nindex, m_strname, m_strcode);

cfile file;

if(!你的完整檔案路徑名#,cfile::moderead,null))

return;

或者如下:cdata* pdata = new cdata;

pdata->nindex = m_nindex;

pdata->name = m_strname;

pdata->code = m_strcode;

ar 附操作符》和<< 的原型,由此可知要使用這些操作符序列化/反序列化類的物件,其右運算元必須使用指標:

friend carchive& afxapi operator<<(carchive& ar, const cobject* pob);

friend carchive& afxapi operator>>(carchive& ar, cobject*& pob);

friend carchive& afxapi operator>>(carchive& ar, const cobject*& pob);

mfc序列化(序列化)儲存如何去實現

8樓:網友

沒有現成的儲存方法。

建議使用 boost 的 序列化庫。

參考序列化庫的教程。

9樓:任明星

opencv實現不了這個功能。你只能利用自己的方法來實現。

我建議參考下介面框架的開發原理,用xml檔案將控制項及其他資訊儲存下來,讀取時根據xml檔案的配置資訊重畫每個控制項。

mfc/vc高手來,如何序列化儲存視類裡的非模態對話方塊!

10樓:迷途中的香菸

儲存資料。

定義乙個結構把有關資料儲存到結構,必要時再將結構的資料經過處理儲存到檔案裡。在下次程式開啟時,讀取檔案的資料到結構,再根據這些資料進行繪製對話方塊。

MFC問題,一個MFC問題

if defined afx clientsocketlist1 h d1518aa4 3f67 436a 9498 0e52d6fce764 included define afx clientsocketlist1 h d1518aa4 3f67 436a 9498 0e52d6fce764 i...

關於MFC的問題,做基於對話方塊的MFC程式,從記憶體讀取B

loadimage afxgetinstancehandle cstring c users lenovo desktop test.bmp image bitmap,0,0,lr loadfromfile 這是你要的函式。看一下我給你的例子,本例子是動態載入突變顯示隨著滑鼠移動 防閃爍 但是這個是...

MFC編輯框中游標問題,MFC 編輯框中 如何獲得游標所在位置

據我所知,你還是不要用那個updatedata函式,如果你想往編輯框裡的某個位置插入字串,你可以用setsel,然後replacesel插入字串,應該就可以了 vc6.0mfc怎麼讓編輯框裡預設顯示游標 資源編輯器中,開啟對話方塊資源,ctrl d設定控制元件順序 tab order 將編輯框設定為...