.dll
파일을 사용하여 파일의 압축을 해제하려고하는데, 코드 섹션에서 추출 절차를 호출 할 때마다 온라인 상태가됩니다. 다음과 같은 오류 :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을 만드시겠습니까? –
소스를 사용하면 작동합니다 : "{src} \ .. \ nssm-2.24.zip"; DestDir : "{app}"; AfterInstall : ExtractMe ('C : \ eltfiles \ nssm-2.24.zip', 'C : \ eltfiles') 실행 섹션에서 DestDir에서 추가 .zip 파일을 제거하려고했습니다. –
.dll에 오류가 있음을 나타내는 오류가 있습니까? 그렇다면 더 많은 것을 배울 수있는 웹 리소스로 안내해 주시겠습니까? –