Einzelnen Beitrag anzeigen

Bernd Nowak

Registriert seit: 18. Jan 2006
Ort: Duisburg
61 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Inno Setup ISCmplr.dll in eigene Anwendung einbauen ?

  Alt 29. Apr 2008, 16:24
Zitat von MathiasSimmack:
Zitat von Bernd Nowak:
ISCmplr.dll
Wie kommst du darauf, dass diese Bibliothek mit C geschrieben wurde? Das Ding ist ein normales Delphi-Projekt (ISCmplr.dpr)
Delphi-Quellcode:
function ISDllCompileScript(const Params: TCompileScriptParamsEx): Integer; stdcall;
function ISDllGetVersion: PCompilerVersionInfo; stdcall;

exports
  ISDllCompileScript,
  ISDllGetVersion;
Dürfte dann ab hier nicht mehr schwer sein.
Ich hatte mir gestern nur die Sources von ISTool angesehen, und die sind in C. Und das ISDllCompileScript exportiert wird hatte ich auch schon mit dem PE Explorer gesehen.
Was ich noch nicht gesehen habe ist welche Parameter übergeben werden (TCompileScriptParamsEx) und wie es gemacht wird, das man einen Fortschrittsbalken sieht.

Vielen Dank schonmal. Bin gar nicht auf die Idee gekommen mir die Source von ISCmplr anzusehen.

Also die Parameter die an ISDllCompielScript übergeben werden können scheint wohl dieser Record zu sein:

Delphi-Quellcode:
  TCompileScriptParamsEx = record
    Size: Cardinal; { [in] Set to SizeOf(TCompileScriptParamsEx). }
    CompilerPath: PChar; { [in] The "compiler:" directory. This is the
                            directory which contains the *.e32 files. If this
                            is set to NULL, the compiler will use the directory
                            containing the compiler DLL/EXE. }

    SourcePath: PChar; { [in] The default source directory, and directory to
                            look in for #include files. Normally, this is
                            the directory containing the script file. This
                            cannot be NULL. }

    CallbackProc: TCompilerCallbackProc;
                          { [in] The callback procedure which the compiler calls
                            to read the script and for status notification. }

    AppData: Longint; { [in] Application-defined. AppData is passed to the
                            callback function. }

    Options: PChar; { [in] Additional options. Each option is a
                            null-terminated string, and the final option is
                            followed by an additional null character.
                            If you do not wish to specify any options, set this
                            field to NULL or to point to a single null
                            character.

                            Currently supported options:

                            OutputBaseFilename=[filename]
                              Overrides any OutputBaseFilename setting in the
                              script; causes the compiler to use [filename]
                              instead.
                            OutputDir=[path]
                              Overrides any output directory in the script;
                              causes the compiler to use [path] instead. }

  end;
Aber irgendwie fehlt mir da das ISS skript und der Weg den Fortschrittsbalken zu setzen. Ich schätze das das etwas mit dem CallBack Proc zu tun hat.
  Mit Zitat antworten Zitat