2009-10-28 79 views
0

我是否認爲MFC類CMemFile不能用於寫入unicode數據,因爲它使用BYTE *,它被定義爲unsigned char BYTE?CMemFile和Unicode

行就行,實際上在CMemFile將數據寫到::寫入

Memcpy((BYTE*)m_lpBuffer + m_nPosition, (BYTE*)lpBuf, nCount); 

如果是這樣我可以在自己的實現CMemfIle與wchar_t的替代BYTE得到它使用Unicode的工作?

感謝您 保羅..

回答

2

我不明白爲什麼它不能直接使用。

唯一的問題是,當你在做內存複製,你不能互換字符數與字節計數。

0

文件是二進制的,所以總是讀/寫字節,並使用編碼層來轉換字符串,除非您確定數據是ASCII編碼。

不,您需要一個編碼器/解碼器。對於Unicode,您需要一個unicode頭,然後是編碼字符。基於unicode編碼(UTF-7,UTF-8,UTF-16,UTF-32等),編碼字符的確切二進制值可能會有所不同。

+0

你的意思是記錄起始偏移量和字符串長度嗎? – Paul 2009-10-29 19:17:31