1

我想将我所有的程序内容放在一个压缩的存档文件中,因为它开始变得非常大。我知道有一些像 zlib 这样的库,但我不知道如何让它们做我想做的事情:

  • 能够从文件中加载纹理/模型等,目前使用 d3dx 方法,例如 D3DXCreateTextureFromFileEx。我真的不想为我想要的不同格式编写自己的图像加载器,所以我需要一些方法来兼容这些 d3d 方法。我知道他们有办法从内存文件中加载,是否适合以某种方式将文件提取到内存中然后加载?

  • 能够将 c++ 流与压缩存档中的文件一起使用,例如:
    std::zipstream file("data.zip:sounds/beep.wav", std::ios::in | std::ios::binary);

4

3 回答 3

2

我建议您查看开源游戏(例如quake3)。正如 Vilx 所指出的,其中一些正在打包资源并具有“虚拟文件系统”的工作实现。你可能会得到一些想法。

于 2008-12-15T16:17:12.413 回答
0

There is an article entitled Programming a Virtual File System archived on flipcode that should provide what you need. If you have questions specific to that article, many former flipcode members now frequent the forums at DevMaster.net.

于 2008-12-15T17:11:03.647 回答
-1

这类事情有现成的库。恐怕我不知道任何名字,但我建议谷歌搜索关键字“虚拟文件系统”。

于 2008-12-15T16:04:14.953 回答