我是否认为MFC类CMemFile不能用于编写unicode数据,因为它使用BYTE *定义为unsigned char BYTE?
实际在CMemFile :: Write中写入数据的行号是
Memcpy((BYTE*)m_lpBuffer + m_nPosition, (BYTE*)lpBuf, nCount);
如果是这样,我可以在我自己的CMemfIle实现中用wchar_t替换BYTE以使其与unicode一起使用吗?
谢谢你 保罗..
答案 0 :(得分:2)
我不明白为什么不能直接使用它。
唯一的问题是,当您进行内存复制时,您无法将字符计数与字节计数互换。
答案 1 :(得分:0)
文件是二进制的,所以总是读/写字节,并使用编码层转换为/从字符串转换,除非您确定数据是ASCII编码。
不,你需要一个编码器/解码器。对于Unicode,您需要一个unicode标头,后跟编码字符。根据unicode编码(UTF-7,UTF-8,UTF-16,UTF-32等),编码字符的确切二进制值可能不同。