Чтение из сжатых архивов

Я хочу поместить содержимое всех моих программ в сжатый архивный файл, так как он начинает становиться достаточно большим. Я знаю, что есть несколько библиотек вроде zlib, но я не знаю, как заставить их делать то, что я хочу сделать:

  • Уметь загружать текстуры / модели и т. Д. Из файла, используя im3-методы d3dx, такие как D3DXCreateTextureFromFileEx. Я действительно не хочу писать свои собственные загрузчики изображений для разных форматов, которые мне нужны, поэтому мне нужен какой-то способ совместимости с этими методами d3d. Я знаю, что у них есть способ загрузки из файла в памяти, было бы целесообразно извлечь файл в память, а затем загрузить его?

  • Уметь использовать потоки c ++ с файлами в сжатом архиве, например:
    файл std :: zipstream («data.zip:sounds/beep.wav», std :: ios :: in | std :: ios :: binary);

15.12.2008 16:00:02
3 ОТВЕТА

Для этого есть готовые библиотеки. Боюсь, я не знаю ни одного имени, но я предлагаю гуглить по ключевым словам "виртуальная файловая система".

-1
15.12.2008 16:04:14
Для тех, кто отрицал это: почему вы думаете, что это не полезно? Я указал направление!
Vilx- 15.12.2008 16:12:04

Я бы порекомендовал посмотреть на игры с открытым исходным кодом (например, quake3). Некоторые из них упаковывают ресурсы и имеют рабочие реализации «виртуальной файловой системы», как отметил Вилкс. Вы можете получить некоторые идеи.

2
15.12.2008 16:17:12
Firefox использует что-то похожее на это и для расширений. В некоторых случаях это включает сжатие. В Windows есть некоторые собственные API, которые обрабатывают zip-файлы как папки ...
Brian 15.12.2008 16:24:18

Есть статья под названием « Программирование виртуальной файловой системы, заархивированной на флипкоде», которая должна предоставить то, что вам нужно. Если у вас есть вопросы , специфичные для этой статьи, многие бывшие члены flipcode в настоящее время часто посещают форумы в DevMaster.net .

0
15.12.2008 18:00:08