KirpArc - очередной упаковщик
Вложений: 1
Всем привет.
Выкладываю на ваш суд свой небольшой проектец, плод работы одного дня. Пакует и читает файлы из упаковки (архивом это назвать язык не поворачивается, так как не сжимает нихрена), стабильно работает, да и скорость ничего так. З.ы. в проекте формат моделек а-ля MDL, т.е. все ресы и анимации в одном файле. |
Ответ: KirpArc - очередной упаковщик
Впринципе можно попробовать его на пуряк перегнать, он тогда вообще шустрый будет
|
Ответ: KirpArc - очередной упаковщик
Вложений: 2
Если прогу запустить на семёрке из program files, не как админ, то не работает. С правами администратора работает.
Сначала я подумал, что это из-за того, что ты создаёшь временный файл при загрузке в той же папке проекта, а этого винда не терпит, сделал выгрузку в реальный темп системы Код:
...... Код:
Function ARC_Open(file$,pass%) почему? Ещё: судя по функции ExtractFileName$(sFilePath$) вложенные папки не поддерживаются, точнее одинаковые имена во вложенных папках. зачем это нужно? писал бы весь путь, и искал по целому пути, разницы же нет. :) |
Ответ: KirpArc - очередной упаковщик
Окей, сегодня попробую исправить все недочёты. А насчёт скорости есть какие-либо замечания?
UPD: Взялся писать папки. Апдейт будет ближе к вечеру. |
Ответ: KirpArc - очередной упаковщик
Скорость тут зависит от оборотов винта и есть ли антивирус:) проходом по массиву со сравнением строк я думаю можно пренебречь. В реалтайме один фиг никто не грузит в блитце, так что нормально.
|
Ответ: KirpArc - очередной упаковщик
Вложений: 1
Блин, оболочку на B+ я откровенно затрахался писать, поэтому забросил. Пока что буду вести доработку только самого пакера.
Учтены все пожелания, добавлены папки (именно с ними затрах в оболочке). Теперь распаковывает в темп, плюс проверочка на одинаковые файлы в директориях. |
Ответ: KirpArc - очередной упаковщик
На счёт графического интерфейса: можно и без него; например, паковать путём перетаскивания папки на ехе-шник, и на выходе получать архив имя_папки.arc. Плюс кроме перетаскивания можно сделать файл с настройками, из которого считывать: нужно ли паковать вложенные папки, типы файлов для упаковки или для исключения из упаковки (по расширению), пароли и т.д.
|
Ответ: KirpArc - очередной упаковщик
Цитата:
|
Ответ: KirpArc - очередной упаковщик
Не успеешь стырить, т.к. сразу после загрузки ресурсов следует их удаление.
(разве что спец. прогой, которая будет отслеживать изменения в папке, если такая есть). |
Ответ: KirpArc - очередной упаковщик
Цитата:
Чтобы можно было читать\писать ресурсы напрямую, без темп-файлов, надо перехватить функции CreateFile ReadFile\WriteFile CloseHandle из Kernel32, т.к. очевидно что внутри всяких LoadMesh и подобных используется I\O сишного рантайма (msvcrt) - обертка над вышеуказанными winapi функциями. Берешь хендл подгруженной в процесс kernel32 Код:
Kernel32 = GetModuleHandle ( "kernel32.dll" ) Код:
CreateFileA = GetProcAddress ( Kernel32, "CreateFileA" ) т.е. сохраняешь старые 6 байт (чтобы по окончании восстановить) и пишешь две инструкции Код:
$63 - push |
Ответ: KirpArc - очередной упаковщик
Там у него удаляются не на закрытии проги, а после загрузки порции картинок, но суть та же.:)
|
Ответ: KirpArc - очередной упаковщик
Эмм, а не слишком ли это круто
|
Ответ: KirpArc - очередной упаковщик
Цитата:
|
Часовой пояс GMT +4, время: 14:42. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot