Zitat von UnLiMiTeD_AcCeSsThema: Wie erstelle ich eine Delphi-DLL zur Abfrage der Seriennummer in Installshield-Express ?
Zitat von UnLiMiTeD_AcCeSs
Problem: InstallShield Express kann nur DLL-Funktionen nutzen, die von einem C-Programm gestartet werden k?nnen.
Um sicher zu sein, dass die Delphi-DLL den Standard-C-Konventionen folgt, muss die stdcall-Aufruf-Konvention in die Deklaration der Funktion ?bernommen werden.
Module: Delphi Studio 7.0, Installshield Express Borland Edition
L?sung: Der nachfolgende Code f?r eine Delphi-DLL basiert auf dem Artikel Q100495 auf der Installshield-Homepage.
- library MyDelphi;
- uses
- Classes,
- SysUtils,
- Dialogs in 'Dialogs.pas',
- Windows in 'Windows.pas';
- function ValidateSN (mainwin: Hwnd; szSrcDir, szSupport, szSerialNum, szDataBase: LPSTR): Integer; export; stdcall;
- var
- test1: String;
- begin
- test1 := Format('Extension Called!! HWND=%x, SRCDIR=%s, SUPPORTDIR=%s, INSTALLDIR=%s ', [mainwin, szSrcDir, szSupport, szInst]);
- MessageDlg(test1, mtInformation, [mbOk], 0);
- result:=0;
- if strpas (szSerialNum)='1111-2222' then result:=1;
- end;
- exports
- ValidateSN index 1;
- begin
- end;
Zitat von UnLiMiTeD_AcCeSsAlles anzeigen
Folgende Eingaben sind bei Installshield-Express im Bereich Dialogfelder, Benutzerinformation erforderlich:
Vorlage f?r Seriennummer : "????-????"
DLL zur ?berpr?fung der Seriennummer : "MyDelphi.dll"
?berpr?fungsfunktion: "ValidateSN"
R?ckgabewert bei Erfolg: "1"
Wiederholungslimit: "3"