我正在尝试使用我上传的.dll
文件解压缩文件,但每当我从代码部分调用extract me程序时,我收到以下错误:
例外:
地址025DA648的访问冲突。读取地址00000000。
步骤:
procedure unzip(src, target: AnsiString);
external 'unzip@files: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;
答案 0 :(得分:0)
unzip
必须声明为stdcall
,而不是cdecl
。只需使用UnzipExample.iss
:
procedure unzip(src, target: AnsiString);
external 'unzip@files:unzipper.dll stdcall delayload';