- -
mpq архивы
(
http://forum.oszone.net/showthread.php?t=127492)
Malfatto |
01-01-2009 04:08 994873 |
mpq архивы
Игры blizzard используют архивы mpq. Как я знаю, для распаковки используется библиотека storm.dll. Как с ней работать в delphi и где её взять (а то, возможно, у меня в папке с вариком старая версия)?
|
Ну а если попробовать подключить эту библиотеку в проект?
|
Хамяг, есть StormLib, там правда на С, но есть описание всех функций storm.dll.
|
Delirium, это я и хотел. Но как я от туда возьму функции, не зная, как их использовать?
DedAlex, читал на сайте автора, но так и не разобрался, ибо С не знаю,
|
Хамяг, чет я не понимаю, на ссылке в 3 посте дано описание всех функций. Какая разница какой там язык, смысл то функции все равно одинаков. Пример с ссылки:
Цитата:
SFileCloseArchive
Ordinal number for Diablo 1.00 : 63 (0x03F)
Ordinal number for StarCraft : 252 (0x0FC)
Function SFileCloseArchive closes an open archive. - закрываем открытый архив
BOOL WINAPI SFileOpenArchive(
HANDLE hMPQ // Handle of open archive - указатель открытого архива
);
Parameters
hMPQ
[in] Handle of open archive. Must be a handle obtained by a call of SFileOpenArchive or SFileCreateArchiveEx. - указатель, берется вызовом функции SFileOpenArchive.
Return value - возвращаемое значение
When the function succeeds, it returns nonzero and the arhive is closed. If fails, function returns FALSE. More informations about the error can be obtained from return value of GetLastError().
Remarks
If the archive was modified since it was open, the function implemented in StormLib also updates the MPQ header, hash table and block table. - если архив был изменен после открытия, функция обновит заголовок MPQ, хеш таблицу и таблицу блокировок
|
Вам надо подключить библиотеку в проект(не знаю как в Делфи, а в .NET добавляется reference на объект и вперед), и пользоваться функциями, прочитав их описание на странице.
|
в делфи надо создать заголовочный файл *.pas, в котором в секции interface прописаны функции и указано, в какой они библиотеке. Пример:
Код:
unit Azimuth;
interface
uses Windows;
// Открытие (Инициализация) библиотеки
function OpenDLL(OpName : PChar; // Имя кассира
Psw : PChar; // Пароль передачи данных
DevName : PChar; // имя последовательного порта
FlagOEM : Integer) : Integer; stdcall; // 0 - есть перекодировка, 1- нет
function OpenDLL; external 'AZIMUTH.DLL';
implementation
end.
|
Спасибо, буду пробовать :) Потом доложу
|
Время: 00:30.
© OSzone.net 2001-