Я пытаюсь разархивировать файл, используя файл .dll
, который я получил в Интернете, но всякий раз, когда я вызываю процедуру извлечения из секции кода, которую я получаю следующее сообщение об ошибке:Ошибка при доступе к нарушению при вызове внешней функции в DLL (unzip in unzipper.dll)
Exception:
Access violation at address 025DA648. Read of address 00000000.
Процедура:
procedure unzip(src, target: AnsiString);
external '[email protected]:unzipper.dll cdecl delayload';
procedure ExtractMe(src, target : AnsiString);
begin
unzip(ExpandConstant(src), ExpandConstant(target));
end;
вызовов внутри Code
секции:
procedure UnzipFiles();
var
NSSMPath: string;
target: AnsiString;
begin
NSSMPath := ExpandConstant('{src}\..\nssm-2.24.zip');
target := 'C:\files';
begin
//Unzips files Checks for presence of files before to save time.
//NSSM
if not (FileExists('C:\files\nssm-2.24'))then
begin
ExtractMe(NSSMPath, target)
end;
end;
end;
Получить рабочий .dll? –
Он работает, если я использую Source: "{src} \ .. \ nssm-2.24.zip"; DestDir: "{app}"; AfterInstall: ExtractMe ('C: \ eltfiles \ nssm-2.24.zip', 'C: \ eltfiles') в разделе выполнения, однако я пытался исключить дополнительный .zip-файл в DestDir. –
Ошибка указывает на ошибку .dll? Если бы вы не обратили внимание на веб-ресурс, где я мог бы узнать больше? –