?? subject_44018.htm
字號:
<p>
序號:44018 發表者:xeastsun 發表日期:2003-06-15 22:06:11
<br>主題:請問如何將CByteArray 序列化?
<br>內容:我做了一個較大的CByteArray,大約30幾K,怎么樣才能直接序列化這些數據呢?<BR>我用它自帶的Serial,好像寫入沒問題,可是在讀入時,請出現了堆棧溢出的問題,不知道如何是好?
<br><a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回復者:擎天柱 回復日期:2003-06-15 22:29:10
<br>內容:這是源代碼,<BR>void CByteArray::Serialize(CArchive& ar)<BR>{<BR> UINT_PTR nBytesLeft;<BR> UINT nBytesToWrite;<BR> UINT nBytesToRead;<BR> LPBYTE pbData;<BR><BR> ASSERT_VALID(this);<BR><BR> CObject::Serialize(ar);<BR><BR> if (ar.IsStoring())<BR> {<BR> ar.WriteCount(m_nSize);<BR> nBytesLeft = m_nSize*sizeof(BYTE);<BR> pbData = m_pData;<BR> while(nBytesLeft > 0)<BR> {<BR> nBytesToWrite = UINT(min(nBytesLeft, INT_MAX));<BR> ar.Write(pbData, nBytesToWrite);<BR> pbData += nBytesToWrite;<BR> nBytesLeft -= nBytesToWrite;<BR> }<BR> }<BR> else<BR> {<BR> DWORD_PTR nOldSize = ar.ReadCount();<BR> SetSize(nOldSize);<BR> nBytesLeft = m_nSize*sizeof(BYTE);<BR> pbData = m_pData;<BR> while(nBytesLeft > 0)<BR> {<BR> nBytesToRead = UINT(min(nBytesLeft, INT_MAX));<BR> ar.Read(pbData, nBytesToRead);<BR> pbData += nBytesToRead;<BR> nBytesLeft -= nBytesToRead;<BR> ar.Read(pbData, nBytesToRead);<BR> }<BR> }<BR>}<BR>你會發現問題的。
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -