Распаковка архива методом PZlib+Srep+Lzma

k0803833

Мимокрокодил
Здраствуйте. у меня вопрос по поводу этого unarc и isdone (unarc.dll isdone.dll)вернул код ошибки 1,6,7,12,14 и т.д
.недавно попалась ошибка при установке игр. (ранее эта ошибка вообще не встречалась) .получается что все новые игры запакованы в pZlib .хотелось бы посоветоваться как эту ошибку избежать при установке игр.переустановка всевозможных архиваторов не решило проблему.
 
Последнее редактирование:

dixen18

Ветеран
k0803833,
Вы конкретно напишите код ошибки если хотите чтоб вам помогли...Нет - сами ""üse google""
 

Mickey1s

Ветеран
Модератор
k0803833, скриншот давай, и не груби людям которые пытаются помочь
 

dixen18

Ветеран
k0803833, Уважаемый вы вообще в теме или нет? Вы в курсе что у ISDONE есть много ошибок и они нумеруются цифрами? Читайте справку по теме и гонор свой умерьте
 

dixen18

Ветеран
k0803833, Ничего там не написано..Вы даже имя библиотеки с ошибкой написали...Не будет конкретных скриншотов - не будет помощи..Или вы так потроллить сюда пришли?
Специально для Вас - http://nastroisam.ru/unarc-dll-isdone/
ЗЫ. Открою вам маленькую тайну - для установки игр-репаков никаких архиваторов ставить не нужно) Все необходимое уже присутствует в файле setup.exe
 
Последнее редактирование:

Adil

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


код

Код:
var  
   ErrorCode: integer;

.....

procedure CancelBtnClick(hBtn:HWND);
begin
  SuspendProc;
  SetTaskBarProgressState(TBPF_PAUSED);
  if MsgBox(SetupMessage(msgExitSetupMessage), mbConfirmation, MB_YESNO) = IDYES then ISDoneCancel:=1;
    #ifdef PZLIB
    Exec(ExpandConstant('{sys}\taskkill.exe'), ' /F /IM pZLib.exe', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode);
    #endif
  SetTaskBarProgressState(TBPF_NORMAL);
  ResumeProc;
end;

.....

if (CurStep=ssPostInstall) and ISDoneError then begin
    ISDoneHide;
    SetTaskBarProgressState(TBPF_NOPROGRESS);
    #ifdef PZLIB
      Exec(ExpandConstant('{sys}\taskkill.exe'), ' /F /IM pZLib.exe', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode);
    #endif
    Exec2(ExpandConstant('{uninstallexe}'), '/SILENT', false);
  end;
 

PUNISHER

Участник
Код:
procedure CancelBtnClick(hBtn:HWND);
begin
  SuspendProc;
  SetTaskBarProgressState(TBPF_PAUSED);
  if MsgBox(SetupMessage(msgExitSetupMessage), mbConfirmation, MB_YESNO) = IDYES then 
begin
ISDoneCancel:=1;
    #ifdef PZLIB
    Exec(ExpandConstant('{sys}\taskkill.exe'), ' /F /IM pZLib.exe', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode);
    #endif
end;
  SetTaskBarProgressState(TBPF_NORMAL);
  ResumeProc;
end;
 

Stas

Участник
залейте пожалуйста готовый батник с pzlib+srep+4x4lzma со всеми файлами, сдох винт, все файлы и сборки для упаковок были на нем (
 

Privetiki

Новичок
Mickey1s, Добрый день,помогите пожалуйста распаковать

Пакую так:
Код:
arc.exe a -w.\ -ep1 -dses --dirs -s; -lc- -di -i2 -r -mpzlib+srep+lzma:a1:mfbt4:d200m:fb273:mc10000:lc8:lp4:pb4 data-1.catalyst packeddata\*
pause
Arc.ini:
Код:
[External compressor:srep]
;options  = l%d (minimal match length, default=512)
header = 0
packcmd   = srep {options} -a1 -m3f -l128 $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
unpackcmd = srep -d $$arcpackedfile$$.tmp $$arcdatafile$$.tmp

[External compressor:pzlib]
header    = 0
packcmd = pZLib e -m2 -c256m -t2 - -o - <stdin> <stdout>
unpackcmd = pZLib d -t90p - -o - <stdin> <stdout>
[Files]
Source: IsDoneFiles\ISDone.dll; DestDir: {tmp}; Flags: dontcopy
Source: IsDoneFiles\unarc.dll; DestDir: {tmp}; Flags: dontcopy
Source: IsDoneFiles\unpack.exe; DestDir: {tmp}; Flags: dontcopy
Source: IsDoneFiles\pZLib.exe; DestDir: {tmp}; Flags: dontcopy
#ifdef records
Source: Output\records.inf; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef PrecompInside
Source: IsDoneFiles\CLS-precomp.dll; DestDir: {tmp}; Flags: dontcopy
Source: IsDoneFiles\packjpg_dll.dll; DestDir: {tmp}; Flags: dontcopy
Source: IsDoneFiles\packjpg_dll1.dll; DestDir: {tmp}; Flags: dontcopy
Source: IsDoneFiles\precomp.exe; DestDir: {tmp}; Flags: dontcopy
Source: IsDoneFiles\zlib1.dll; DestDir: {tmp}; Flags: dontcopy
Source: IsDoneFiles\arc.ini; DestDir: {tmp}; Flags: dontcopy
Source: IsDoneFiles\srep.exe; DestDir: {tmp}; Flags: dontcopy
Source: IsDoneFiles\hif2raw_dll.dll; DestDir: {tmp}; Flags: dontcopy
Source: IsDoneFiles\raw2hif_dll.dll; DestDir: {tmp}; Flags: dontcopy
Source: IsDoneFiles\unpack.exe; DestDir: {tmp}; Flags: dontcopy
Source: IsDoneFiles\unarc.dll; DestDir: {tmp}; Flags: dontcopy
Source: IsDoneFiles\cls-precompmt.dll; DestDir: {tmp}; Flags: dontcopy
Source: IsDoneFiles\CLS-srep.dll; DestDir: {tmp}; Flags: dontcopy

Еще скрипт:
Код:
 if not ISArcExtract    ( 0, 100, ExpandConstant('{src}\Data-1.bin'), ExpandConstant('{app}\'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}\'), notPCFonFLY{PCFonFLY}) then break;
Буду благодарен за любую помощь

pzlib v3
 

sergey3695

Ветеран
Модератор
packcmd = srep {options} -slp- -a0/0 -m3f -l128 $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
Privetiki, пробуй
 

vint56

Ветеран
Проверенный
Privetiki,
#define pZLib
[Setup]

[Files]
#ifdef pZLib
Source: Include\pZLib\hif2raw_dll.dll; DestDir: {tmp}; Flags: dontcopy
Source: Include\pZLib\raw2hif_dll.dll; DestDir: {tmp}; Flags: dontcopy
Source: Include\pZLib\pZLib.exe; DestDir: {tmp}; Flags: dontcopy
#endif

Код:
procedure CurStepChanged(CurStep: TSetupStep);
begin
  #ifdef pZLib
  ExtractTemporaryFile('hif2raw_dll.dll');
  ExtractTemporaryFile('raw2hif_dll.dll');
  ExtractTemporaryFile('pZLib.exe');
  SaveStringToFile(ExpandConstant('{tmp}\pZLib.ini'), '[External compressor:pzlib]'+#13#10+'header    = 0'+#13#10+'unpackcmd = pZLib d -t90p - -o - <stdin> <stdout>'+#13#10+''+#13#10+'[External compressor:srep]'+#13#10+';options  = l%d (minimal match length, default=512)'+#13#10+'header = 0'+#13#10+'unpackcmd = srep -d $$arcpackedfile$$.tmp $$arcdatafile$$.tmp', True);
  #endif
end;

if not ISArcExtract    ( 0, 100, ExpandConstant('{src}\Data-1.bin'), ExpandConstant('{app}\'), '', false, '', ExpandConstant('{tmp}\pZLib.ini'), ExpandConstant('{app}\'), notPCFonFLY{PCFonFLY}) then break;
 
Последнее редактирование:

sergey3695

Ветеран
Модератор
vint56, SaveStringToFile(ExpandConstant('{tmp}\pZLib.ini') -> ExpandConstant('{tmp}\arc.ini'). pZLib.ini возможно.
 

vint56

Ветеран
Проверенный
Privetiki, я из своего модуля переписал но строчку твою для распаковки указал в моем модуле pZLib.ini а у тебя arc.ini поменяй
SaveStringToFile(ExpandConstant('{tmp}\pZLib.ini') на arc.ini
либо
ExpandConstant('{tmp}\pZLib.ini')
 

Privetiki

Новичок
vint56, Сделал,но теперь вернулись первые две ошибки
upload_2018-6-26_14-12-54.png

arc.ini сейчас так выглядит:
Код:
[External compressor:srep]
options  = l%d (minimal match length, default=512)
header = 0
packcmd   = srep {options} -slp -a0/0 -m3f -l128 $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
unpackcmd = srep -d $$arcpackedfile$$.tmp $$arcdatafile$$.tmp

[External compressor:pzlib]
header    = 0
packcmd = pZLib e -m2 -c256m -t2 - -o - <stdin> <stdout>
unpackcmd = pZLib d -t90p - -o - <stdin> <stdout>
 
Сверху