Когда смотрел была только предварительная версия 048. С cls еще 046 проблемно работала, но удалось её пропатчить, с 048 тоже получитьсяPrecomp048 есть. Можешь его попробовать. Может он по скорости быстрее? Ознакомительная версия. И не знаю cls поддерживает или нет. И для распаковки 7z не обязательно 7z+dll, достаточно 7z standalone той же версии.
ISDone не работает с unarc.exeУ unarc.exe этих ограничений нет.
В первые слышу. Я первые репаки делал как раз из алгоритмом lzma (встроеным в freearc) и словарем 200mb, и у меня все хорошо работало (в том числе и с паролями). И сейчас на той unarc.dll которую я поставляю с программой тоже паролаботаютЯ по поводу unarc.dll. Там еще одна загвоздка. Лимит использования внутренней(~96mb) памяти для распаковки т.е. если используешь упаковку lzma самим арком или fazip с хорошей компрессией то нужно не выходить за рамки этих значений или использовать внешние компрессоры. dict+rep+tor+lpz.....+xlzma(4x4) lzma<96. Я это так понял. Пробовал установить словарь больше чем 64мб, смотрел в аркинфо сумма набегала >100mb - окно 'не хватает памяти!' при распаковке.
Скидывай unarcdll.cpp я тебе пересоберуКак пересобрать unarc.dll кто ни будь знает?
Так там если к примеру выделить словарь на 64mb и запустить в 4 потока то для распаковки нужно будет 4*64 mb, а если поставить 100, тогда уже не у каждого найдеться 400mb памяти для распаковки (учитывая еще то что другие алгоритмы будут потреблять память)Leon. Извиняюсь. Потребление памяти относится только к 4x4.
Долько прогрессбар может глючитьUnarc.exe работает с isdone 06. Команда IsExec.
Krinkels. Там их 2. Охота попробовать обе.
E:\FA\ghc\gcc-lib\dllwrap.exe -BE:\FA\ghc\gcc-lib --driver-name E:\FA\MinGW\bin\gcc.exe E:\FA\temp-unarc/unarcdll.o E:\FA\temp-unarc/Environment.o E:\FA\temp-unarc/Common.o E:\FA\temp-unarc/CompressionLibrary.o E:\FA\temp-unarc/C_LZMA.o E:\FA\temp-unarc/C_BCJ.o E:\FA\temp-unarc/C_Dict.o E:\FA\temp-unarc/C_Delta.o E:\FA\temp-unarc/C_REP.o E:\FA\temp-unarc/C_LZP.o E:\FA\temp-unarc/C_PPMD.o E:\FA\temp-unarc/C_External.o E:\FA\temp-unarc/C_MM.o E:\FA\temp-unarc/C_TTA.o E:\FA\temp-unarc/C_Tornado.o E:\FA\temp-unarc/C_GRZip.o E:\FA\temp-unarc/C_4x4.o E:\FA\temp-unarc/C_DisPack.o E:\FA\temp-unarc/C_LZ4.o E:\FA\temp-unarc/C_Encryption.o E:\FA\temp-unarc/C_CLS.o -lstdc++ -lole32 -def unarc.def -s -o unarc.dll
unarc.exp:fake:(.edata+0x3c): undefined reference to `ArcExtract'collect2: ld returned 1 exit status
E:\FA\ghc\gcc-lib\dllwrap.exe: E:\FA\MinGW\bin\gcc.exe exited with status 1
Makefile:51: recipe for target 'unarc.dll' failed
In file included from unarcdll.cpp:14:
ArcProcess.h: In member function `void PROCESS::ExtractFiles(DIRECTORY_BLOCK*, int)':
ArcProcess.h:372: warning: too many arguments for format
unarcdll.cpp: In function `void UnarcQuit()':
unarcdll.cpp:19: error: no matching function for call to `PROCESS::quit(int)'ArcProcess.h:473: note: candidates are: bool PROCESS::quit(int, char*)
unarcdll.cpp: At global scope:
unarcdll.cpp:42: error: conflicting return type specified for `virtual void DLLUI::BeginProgress(uint64)'
ArcCommand.h:30: error: overriding `virtual bool BASEUI::BeginProgress(uint64)'
unarcdll.cpp: In member function `bool DLLUI::event(char*, Number, Number, char*)':
unarcdll.cpp:63: error: 'class Event' has no member named 'Lock'
unarcdll.cpp: In function `int FreeArcExtract(int (*)(char*, Number, Number, char*), ...)':
unarcdll.cpp:167: error: request for member `Create' in `thread', which is of non-class type `void*'
unarcdll.cpp:168: error: request for member `Create' in `thread', which is of non-class type `void*'
unarcdll.cpp:172: error: 'class Event' has no member named 'Lock'
unarcdll.cpp:178: error: request for member `Wait' in `thread', which is of non-class type `void*'
Makefile:51: recipe for target 'unarc.dll' failed
чтобы быстро покавалось на lzma и lzma2 нужно задать многопоточность...по умолчанию они сжимают в 2 потока что очень и очень медленно...и рспаковка тоже будет очень долгой. Хотя обратно же при многопоточности сжимает хуже чем при 2-х поточности.Leon. Ты еще постарайся как то определиться с анализом! Для больших файлов это о-очень долго, да и нагрузка на диск большая. Или как то ее свести к минимуму, или исключить. Я пакер все пробовал на маленьких файлах - это было терпимо, но попробовал на Hitman 2(взял пару больших файлов) - неделю наверное только анализ будет, потом ~ 3 дня паковаться - это долго. К тому же почему то с выставленными параметрами lzma(которые у тебя сейчас существуют), наверное и с lzma2 так же, на максимум(кроме словаря) так медленно пакуется. Что то там не так. Параметр fb или mc, а может оба. Посмотри что там не так.
ну так правильно допустим выставишь словарь d200m и 4 потока вот считай пр запаковке будет жрать 4.5 гб оперативы..при 2 потоках 2.5 гб...но сжатие в итоге будет лучше при 2 потоках...вот такие делишечки...при 2 потоках можно словарь d400m вабще поставить будет хавать 4.5 гб и сжатие будет ещё лучше...тут многое ещё зависит от количетсва оперативной памяти в компьютере. P/S это я про lzma 2 писал.mt=[off | on | {N}] или просто добавить на выбор. Но там ничего не сказано про ухудшении сжатия. Только потреблении памяти.