Guten Morgen...
Ich habe mich für die
DLL Variante entschieden. Da kann ich ggf. beliebig erweitern. Es gab hier und da ein paar Problemchen im Script welche aber zur Weiterbildung beigetragen haben.
Eines verstehe ich aber nicht:
Ich mußte den "String" Parameter als PAnsiChar übergeben. Bei PChar kam nur Müll in der
DLL an.
PS: Die Typen waren in jeder Variante sowohl in der
DLL als auch im Script identisch... Hat jemand eine Erklärung dafür?
DLL:
Delphi-Quellcode:
function CopyLicenseFile(ProductTypeID: Integer; TargetFolder: PAnsiChar): Boolean; stdcall;
begin
Result:= TSetupTools.CopyLicense(ProductTypeID, TargetFolder);
end;
exports
CopyLicenseFile;
Script:
Delphi-Quellcode:
function CopyLicenseFile(ProductTypeID: Integer; TargetFolder: PAnsiChar): Boolean;
external 'CopyLicenseFile@files:dSetupTools.dll stdcall setuponly';
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
begin
if IsComponentSelected('Server') and IsTaskSelected('License') then
begin
CopyLicenseFile(3, PAnsiChar(ExpandConstant('{userappdata}\DIMOWA\dVAServer\License')));
end;
end;
end;