gpt4 book ai didi

c++ - CArchive 当前在文件中的位置

转载 作者:搜寻专家 更新时间:2023-10-31 01:49:15 24 4
gpt4 key购买 nike

我有一段代码,其中使用 CArchive 进行读写和归档。经过调查,我发现 CArchive 对象在从文件的不同部分读取数据时会更改其位置。例如,如果文件结构是先有页眉,然后是正文,然后是页脚。现在,如果有人想阅读页脚,那么 CArchive 只能通过转到文件中的特定位置来读取页脚。这是由这个完成的。

COleStreamFile stream;
//Stream is pointed to footer location.
stream.OpenStream(m_pStg, "Footer", nOpenFlags, pError); // pStg is LPSTORAGE
CArchive ar(&stream, CArchive::load);

现在我感兴趣的是 CArchive 将在哪个位置读取或写入。字节索引、文件位置或类似的东西。

最佳答案

您不能直接从 CArchive 对象获取位置,但您可以从底层流获取它 - 在您的例子中是 COleStreamFile。只需调用 CFile::GetPosition .

例子:

COleStreamFile stream;
//Stream is pointed to footer location.
stream.OpenStream(m_pStg, "Footer", nOpenFlags, pError); // pStg is LPSTORAGE
CArchive ar(&stream, CArchive::load);
// Add some data.
ar << someData;

// And get the current position.
int currentPos = stream.GetPosition();

关于c++ - CArchive 当前在文件中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16790732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com