123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- unit Shared.CompilerInt;
- {
- Inno Setup
- Copyright (C) 1997-2024 Jordan Russell
- Portions by Martijn Laan
- For conditions of distribution and use, see LICENSE.TXT.
- Compiler interface
- }
- interface
- uses
- Shared.CompilerInt.Struct;
- const
- ISCmplrDLL = 'ISCmplr.dll';
- var
- ISCmplrLibrary: HMODULE;
- { The ISDllCompileScript function begins compilation of a script. See the above
- description of the TCompileScriptParams record. Return value is one of the
- isce* constants. }
- ISDllCompileScript: function(const Params: TCompileScriptParamsEx): Integer; stdcall;
- { The ISDllGetVersion returns a pointer to a TCompilerVersionInfo record which
- contains information about the compiler version. }
- ISDllGetVersion: function: PCompilerVersionInfo; stdcall;
- procedure InitISCmplrLibrary;
- implementation
- uses
- Windows,
- SysUtils,
- PathFunc, TrustFunc;
- procedure InitISCmplrLibrary;
- begin
- var FileName := AddBackslash(PathExtractPath(ParamStr(0))) + ISCmplrDLL;
- ISCmplrLibrary := LoadTrustedLibrary(FileName, [ltloTrustAllOnDebug]);
- if ISCmplrLibrary <> 0 then begin
- ISDllCompileScript := GetProcAddress(ISCmplrLibrary, 'ISDllCompileScriptW');
- ISDllGetVersion := GetProcAddress(ISCmplrLibrary, 'ISDllGetVersion');
- if not Assigned(ISDllCompileScript) or not Assigned(ISDllGetVersion) then begin
- FreeLibrary(ISCmplrLibrary);
- ISCmplrLibrary := 0;
- ISDllCompileScript := nil;
- ISDllGetVersion := nil;
- end;
- end;
- end;
- end.
|