|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.09.2008, 20:16 | #1 |
Новичок
Джуниор
Регистрация: 15.09.2008
Сообщений: 2
|
MPQ архивы. вопрос...
Всем привет! Есть вопрос по MPQ архивам (в такие компания Blizzard упаковывает свои игры). Так вот есть у меня один вопрос:
В инете можно легко найти кучу функций для работы с таковыми. Мне нужно написать кусок кода, который открывает архив, некий patch-6.MPQ и файл, некий World\Maps\Kalimdor\Kalimdor.adt (обязательно в таком виде... у меня в программе это древо сразу хранится в переменной так что всё уже схвачено =) ). Так вот нужно чтобы код сначала проверял нет ли в архиве такого файла и в противном случае удаляла старый и записывала на его место вот этот самый Kalimdor.adt либо (если такового не было в архиве) сразу его туда добавляла! Я просто очень мало знаком с работой архивов так что прошу помощи у специалистов! =) Естественно на с++ Последний раз редактировалось Beket; 16.09.2008 в 03:13. |
16.09.2008, 00:43 | #2 |
Новичок
Джуниор
Регистрация: 15.09.2008
Сообщений: 2
|
Вот, например, нашёл библиотеку http://www.zezula.net/en/mpq/stormdll.html
Но вот как мне её проюзать? |
17.09.2008, 09:39 | #3 |
Unix C++ developer
Форумчанин
Регистрация: 16.04.2007
Сообщений: 651
|
Я скачал по указанной вами ссылке архив stormlib.zip, а в нем обнаружил уже скомпилированную библиотеку stormlib.dll, которую, понятно, надо положить в каталог к исполняемому файлу, а так же заголовочный файл StormDll.h, в котором объявлены прототипы необходимых функций, в частности:
SFileOpenArchive(LPCSTR lpFileName, DWORD dwPriority, DWORD dwFlags, HANDLE *hMPQ); - дання функция используется для открытия файла-архива, пример: Код:
Так же есть функции: SFileCloseArchive)(HANDLE hMPQ); - закрывает открытый архив. SFILE(GetFileArchive)(HANDLE hFile, HANDLE *hMPQ); - позволяет обратиться к конкретному файлу в архиве, через его хендл, функция так же возвращает логический результат. Естественно не забываем в начале программы #include "StormDll.h" Работу этих функция я не проверял, т.к. у меня нет ни одного mpq файла. Вообще в скачанном архиве очень много исходников, как самой библиотеки, так и программ, демонстрирующих работу с этой библиотекой, а так же приводится описание формата mpq файла. |
27.02.2009, 18:38 | #4 |
Регистрация: 27.02.2009
Сообщений: 5
|
почитай тему "Использование MPQ архивов". Я правда там токо про чтение файла из архива написал, но все таки вдруг пригодится.
Я там использовал не Storm.dll, а SFmpq.dll там есть функции для обновления файлов: Код:
Последний раз редактировалось Smitt64; 28.02.2009 в 18:09. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) | Albert2008 | Общие вопросы Delphi | 4 | 21.08.2008 15:33 |
вопрос по сокетам и общение как в ICQ.Сложный вопрос... | Руслантус | Общие вопросы C/C++ | 2 | 12.08.2008 21:10 |
Вопрос | Mitron | О форуме и сайтах клуба | 1 | 11.02.2008 06:26 |
WoW - вопрос | PAVEL315 | Свободное общение | 2 | 05.02.2008 20:51 |
вопрос про ADO | Cantana | Помощь студентам | 14 | 12.09.2007 15:33 |