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.