msdn上面:
CFile f("G:\\22.txt", CFile::modeWrite | CFile::typeBinary);
char buf[8];
buf[0]='a';
buf[1]='a';
buf[2]='a';
buf[3]='a';
buf[4]='a';
buf[5]='a';
buf[6]='a';
buf[7]='a';
CArchive ar(&f,CArchive::store,8,buf);
ar.Flush();
f.close;
按道理是可以的,但是发现22.txt内为空啊
而且如果将CArchive ar(&f,CArchive::store,8,buf);改为
CArchive ar(&f,CArchive::store);
ar.WriteString( "My string." );
发现可以写入到22.txt.请问为什么阿
CFile f("G:\\22.txt", CFile::modeWrite | CFile::typeBinary);
char buf[8];
buf[0]='a';
buf[1]='a';
buf[2]='a';
buf[3]='a';
buf[4]='a';
buf[5]='a';
buf[6]='a';
buf[7]='a';
CArchive ar(&f,CArchive::store,8,buf);
ar.Flush();
f.close;
按道理是可以的,但是发现22.txt内为空啊
而且如果将CArchive ar(&f,CArchive::store,8,buf);改为
CArchive ar(&f,CArchive::store);
ar.WriteString( "My string." );
发现可以写入到22.txt.请问为什么阿
简单构造CArchive ar(&f,CArchive::store,8,buf)后,然后再调用ar.Flush();
m_lpBufCur = m_lpBufStart,这时CArchive不做任何事情就返回了。调用ar.WriteString( "My string." );会改变m_lpBufCur的值,ar.Flush()就工作了。
另外buf的大小至少是128。否则buf 会 = NULL