首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Win 32或加速内存映射访问

Win 32或加速内存映射访问
EN

Stack Overflow用户
提问于 2012-12-31 06:24:02
回答 1查看 668关注 0票数 1

我被告知内存映射文件是获得快速文件i/o来存储2d游戏磁贴图的一种可能的方法。游戏将频繁地更新数据,我将知道要更新的行/列,因此我可以通过这种方式直接访问数组。然而,看着一些例子,我不明白这是如何工作的。

有没有人有一个创建、读取和写入结构的内存映射文件的小示例,其中的结果将是一个一维数组,这样我就可以为我的游戏访问它,例如maprow * MAX_ROW + col.tileID = x;。Boost or Win 32很好,我没有偏好,但我发现网上的例子有点令人困惑,经常很难将它们转换成我想要的结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-31 08:56:49

这里有一个看起来比较容易理解的例子:Problem with boost memory mapped files: they go to disk instead of RAM

请注意,.data()成员提供了一个char*,您可以将它转换为一个指针,指向您想要的任何内容的数组,只要有足够的内存,就可以大干一场。

也就是说,我高度怀疑内存映射文件在这里是错误的解决方案。为什么不使用普通的C++ (向量、类、ifstreams等)加载到你的级别,随意修改它,如果你想把更改保存到磁盘上,完成后再写出来呢?

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14095286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档