Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » FreeArc: бесплатный open-source архиватор - Часть 3

Модерирует : gyra, Maz

Widok (23-11-2010 11:37): Лимит страниц. Продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

FreeArc
бесплатный open-source архиватор для Windows и Linux,
сочетающий высокую степень сжатия и большой набор возможностей


Официальный сайт | Скриншоты | Лента новостей
Документация на консольную версию | Документация на GUI версию
Сообщество пользователей FreeArc | Вики | Трекер (рассылка по ошибкам)
Проект на SourceForge.net | SVN-репозиторий | Поддержка InnoSetup
Обсуждение на encode.ru (англоязычное)

Скачать последний релиз - FreeArc 0.666 от 20 мая 2010 г. Что нового: ускорение работы в 1.5-2 раза благодаря новой технологии многопоточного сжатия, распаковка архивов многих форматов используя технологии 7-zip, запуск файлов из архива, исправлены все проблемы интеграции с Explorer (подробнее)
 
Текущая альфа версия: 0.67 - загрузка | список исправлений | блог

FAQ по FreeArc

Подробное описание используемых алгоритмов
Почему он сжимает лучше и быстрее, чем 7-zip/rar...
Результаты тестов, подтверждающие его крутизну... | И немного о будущем...
Почему для использования 2+ гб памяти желательно установить 64-битную версию Windows
Планы дальнейшего развития
Что подразумевается под "интеграцией с Explorer"
Старая FreeArc wiki (включая описание формата архива)
Логотип - объявляется конкурс на иконки для FreeArc

Сторонние оболочки для работы с FreeArc:
  • wArc - простая и понятная программа управления архивами (требует .NET Framework 2.0)
  • PeaZip - менеджер архивов с поддержкой большого количества форматов, для Windows и Linux
     

    Родственные темы:
  • Inno Setup плюс внешние упаковщики - использование архивов FreeArc в инсталяторах
  • Пережатиe/Pекомпрессия/Oптимизация файлов для лучшего сжатия - "а как сжать ещё лучше?"
  • FreeArc и Unix - для альтернативно одарённых
     
    Другие архиваторы:
  • WinRAR
  • 7-zip

  • Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 19:15 07-09-2009 | Исправлено: Bulat_Ziganshin, 18:34 26-07-2010
    V2driver



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    qqqbbb  
    best asymmetric это не значит Бест сжатие..
    А лучший асимметрик - тоесть большая скорость распаковки..

    Всего записей: 462 | Зарегистр. 01-02-2010 | Отправлено: 14:28 30-08-2010
    Profrager



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bulat_Ziganshin
    выложи плиз исходники, хочу все же разобраться в чем проблема..истина уже где-то рядом..)

    Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 17:30 30-08-2010 | Исправлено: Profrager, 17:30 30-08-2010
    Bulat_Ziganshin

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Profrager
    http://rghost.ru/2485289

    Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 17:40 30-08-2010
    Profrager



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bulat_Ziganshin
    1) большое спасибо)
    2) после компиляции с этой dll у меня facompress.dll стала цепляться при любом способе загрузки unarc.dll.  
    В функции LoadFromDLL в unarc.dll добавил MessageBoxW(0,path,0,0) дабы понаблюдать за получаемой строкой пути. При ручной загрузке в DllMain передаю хендл самой ISDone.dll, MessageBoxW из unarc.dll верно отображает путь к isdone.dll. Если же гружу через LoadLibrary, MessageBoxW показывает путь к unarc.dll. Т.е. все как и должно было быть) Не знаю почему до этого с присланной тобой dll не работала прямая загрузка в память.
    3) отчего-то размер dll после компиляции на 10кб больше того, что ты присылал (было 295'424, стало 305'664), чего-то добавил? Или у меня версия компилятора другая?
    4) есть небольшая проблемка - после завершения (или отмены) установки facompress.dll не удаляется из папки темп. Видно, что setup секунду где-то висит, ждет когда она освободится, но так и не дождавшись выходит, оставив  в темпе. Надо бы как-то выгружать ее при выходе..
     
    Добавлено:
    Bulat_Ziganshin
    Еще вот мысли на счет ImageBase dll'ок. У unarc.dll 61080000h - вроде как нормально, но вот на моей XP x86 до 71B00000h свободное место, может лучше разместить где-нить ближе к 70000000h? Хотя на Win7 может быть иначе. И у facompress.dll ImageBase=00400000h, что не есть хорошо, его тоже бы куда нить в конец недалеко от unarc.dll сместить, чтобы по минимому кромсать непрерывную свободноую память. И у InnoCallback.dll надо будет тож ручками сместить в конец, а то у него ImageBase=00400000h.

    Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 18:35 30-08-2010 | Исправлено: Profrager, 18:42 30-08-2010
    Profrager



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    или же все делать на один адрес, чтобы винда сама рассовывала в свободные места. Правда не знаю оптимально ли она их расположит, или раскидает куда попало..

    Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 20:43 30-08-2010 | Исправлено: Profrager, 20:44 30-08-2010
    Bulat_Ziganshin

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    вот для сравнения моя: http://rghost.ru/2487559
    насчёт лишних 10 кб стало интересно, разобрался - это из-за добавления операций над Thread в C_External.cpp. Хотя всё равно непонятно, как это произошло, учитывая, что те же операции уже используются в CompressionLibrary.cpp
     

    Цитата:
    есть небольшая проблемка - после завершения (или отмены) установки facompress.dll не удаляется из папки темп. Видно, что setup секунду где-то висит, ждет когда она освободится, но так и не дождавшись выходит, оставив  в темпе. Надо бы как-то выгружать ее при выходе..  

    наверно в той же DllMain?
     

    Цитата:
    Еще вот мысли на счет ImageBase dll'ок.  

    имхо надо все на ImageBase=00400000h, это ручное распределение адресов - идиотизм полнейший

    Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 21:20 30-08-2010
    Profrager



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bulat_Ziganshin

    Цитата:
    наверно в той же DllMain?

    судя по названиям и значениям констант:

    Код:
          DLL_PROCESS_ATTACH=1;
          DLL_THREAD_ATTACH=2;
          DLL_THREAD_DETACH=3;
          DLL_PROCESS_DETACH=0;

    так оно и есть. Надо обрабатывать DLL_PROCESS_DETACH.
     

    Цитата:
    имхо надо все на ImageBase=00400000h, это ручное распределение адресов - идиотизм полнейший
    На счет 00400000h согласен, если и делать одинаковые ImageBase, то уж у всех dll сразу. Посмотрел пару случаев с одинаковыми ImageBase, винда вроде нормально последовательно их располагает, не раскидываясь кусками кода где попало (благо тут хоть не так как в файловой системе на винте ) Так что и для unarc.dll можно 00400000h ставить. Хотя вот умные люди пишут, что одинаковые ImageBase ставить не рекомендуется. В нескольких местах это читал, но в подробности причин этого не вникал.
     
    И еще заметил:

    Код:
    FARPROC LoadFromDLL (char *funcname, int only_facompress_mt)
    {
    #ifdef FREEARC_WIN  // Non-Windows platforms aren't yet supported
      static bool loaded = FALSE;
      static HMODULE dll = NULL,  mt_dll = NULL;
     
      if (!loaded)
      {
        loaded = TRUE;...

    Я конечно поверхностно знаю Си, но если по аналогии с паскалем, то ведь переменные loaded, dll, mt_dll локальные для данной функции и они очистятся при следующем вызове LoadFromDLL и в таком случае при каждом ее вызове будет загружать facompress.dll снова и снова. Или я ошибаюсь?

    Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 21:50 30-08-2010 | Исправлено: Profrager, 21:52 30-08-2010
    Registered User

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    ведь переменные loaded, dll, mt_dll локальные для данной функции и они очистятся при следующем вызове  

    слово static как раз и отменяет это, сохраняя переменные до следующего вызова функции

    Всего записей: 76 | Зарегистр. 22-12-2007 | Отправлено: 22:23 30-08-2010
    Profrager



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Registered User
    я так и подумал, что зря это написал Зато теперь в курсе, что static - объявление глобальной переменной)

    Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 22:59 30-08-2010
    Bulat_Ziganshin

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Надо обрабатывать DLL_PROCESS_DETACH.  

    оказывается там низя. сделал  непосредственно в FreeArcExtract, пробуй: http://rghost.ru/2490120

    Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 01:22 31-08-2010
    Profrager



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bulat_Ziganshin
    при любом способе загрузки в начале распаковки вылезает вот это:

     
     
    Добавлено:
    а без facompress.dll все распаковывается

    Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 08:32 31-08-2010
    Bulat_Ziganshin

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Profrager
    попробуй сам с UnloadCompressionDLLs поиграть, может там на NULL проверять надо?
     
    Добавлено:
    http://rghost.ru/2491393 - перед выходом вызывай UnloadDLL

    Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 08:49 31-08-2010 | Исправлено: Bulat_Ziganshin, 08:57 31-08-2010
    Registered User

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    static - объявление глобальной переменной)

    они все равно видны только из функции, но сохраняются между ее вызовами

    Всего записей: 76 | Зарегистр. 22-12-2007 | Отправлено: 11:51 31-08-2010
    Eric_Allman



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доставляю страждущим пример распаковки архива на Delphi (используя unarc.dll) с прогрессбаром.  
    Код не приводил в божеский вид, отдельным юнитом не оформлял, ибо там все просто.
     
    http://dl.dropbox.com/u/4212902/freearctest.zip

    Всего записей: 14 | Зарегистр. 29-08-2010 | Отправлено: 14:30 31-08-2010 | Исправлено: Eric_Allman, 14:31 31-08-2010
    Bulat_Ziganshin

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Eric_Allman
    большое спасибо! а unarc.pas - это мусор, который ты забыл стереть?
     
    переведу сообщения на english и включу в дистрибут. а как твой копирайт-то указать? просто Eric_Allman?

    Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 14:37 31-08-2010
    Eric_Allman



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    а unarc.pas - это мусор, который ты забыл стереть?

     
    Да, именно. Выброси его из архива.
    Да копирайты зачем, творчество же народное. Но можешь написать Kpa3 )
    Кстати, Булат, мне вот уже начинает нравится твой архивер, но он аскетичный очень. Может впоследствии его сделать более дружественным, как WinRar?

    Всего записей: 14 | Зарегистр. 29-08-2010 | Отправлено: 15:17 31-08-2010 | Исправлено: Eric_Allman, 15:19 31-08-2010
    egor23



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Eric_Allman

    Цитата:
    Кстати, Булат, мне вот уже начинает нравится твой архивер, но он аскетичный очень. Может впоследствии его сделать более дружественным, как WinRar?


    Сделайте красивый архиватор.

    Всего записей: 3832 | Зарегистр. 03-11-2003 | Отправлено: 15:52 31-08-2010
    Bulat_Ziganshin

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Eric_Allman
    после выпуска 0.70 именно этим и займусь. а что конкретно ты хотел бы предложить? может, сформулируешь своё видение удобной программы?

    Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 15:53 31-08-2010
    Eric_Allman



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    после выпуска 0.70 именно этим и займусь. а что конкретно ты хотел бы предложить? может, сформулируешь своё видение удобной программы?

     
    Ну, интерфейс, я считаю, требуется диаметрально противоположный текущему. Вообще разработка интерфейса штука тонкая, но можно попробовать сбацать что-нибудь такое, что будет гораздо более безболезненно продвигаться в массы. Я вот помню, как вышел новый винрар 3.0 и выше. И люди плевались, что старыми версиями не могут новые архивы распаковывать. Однако как-то быстро все это забылось.
    Заслуга многих популярных программ и утилит - именно интерфейс. Winamp, Winrar.
    В данный момент FreeArc напоминает мне freeBSD где не знаешь где и что выставить. На досуге могу попробовать накидать примерную форму. Посмотришь, вдруг потом пригодится.

    Всего записей: 14 | Зарегистр. 29-08-2010 | Отправлено: 15:56 31-08-2010 | Исправлено: Eric_Allman, 15:57 31-08-2010
    Bulat_Ziganshin

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    диаметрально противоположный - это как?

    Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 15:57 31-08-2010
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106

    Компьютерный форум Ru.Board » Компьютеры » Программы » FreeArc: бесплатный open-source архиватор - Часть 3
    Widok (23-11-2010 11:37): Лимит страниц. Продолжаем здесь


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru