rt CFile FileRead;
if(!FileRead.Open("C:\\abc.jpg",CFile::modeRead))
return "";
DWORD fLen = FileRead.GetLength();
char* pBuff = new char[fLen];
FileRead.Read(pBuff,fLen);
FileRead.Close();
CString strImage(pBuff);
delete [] pBuff;strImage的内容写入文件(还原)后,格式不正确,如果将pBuff写入则可以。原因何在?
if(!FileRead.Open("C:\\abc.jpg",CFile::modeRead))
return "";
DWORD fLen = FileRead.GetLength();
char* pBuff = new char[fLen];
FileRead.Read(pBuff,fLen);
FileRead.Close();
CString strImage(pBuff);
delete [] pBuff;strImage的内容写入文件(还原)后,格式不正确,如果将pBuff写入则可以。原因何在?
另外,你说的格式不对是怎么知道的,是否在图片浏览器中无法打开?
写入文件后大小只有1K.
char* pBuff = new char[fLen+1];
FileRead.Read(pBuff,fLen);
FileRead.Close();
char[fLen+1]='\0';//强制赋值
CString strImage;
strImage.Format("%s",pBuff);试试
不行,我早试过了。
应该用CByteArray,或者BYTE[](后者需要管理长度)。
随时要记得这样一个事实,一个CString或char[]中只能有唯一的一个'\0'是有效的,那就是它的结束符,之后的内容原则上是无效数据。
——非文本文件里面有多少个'\0'啊!!