Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Prüfen einer Seriennummer bei der Installation (https://www.delphipraxis.net/102705-pruefen-einer-seriennummer-bei-der-installation.html)

little_budda 2. Nov 2007 18:43


Prüfen einer Seriennummer bei der Installation
 
Hallo,

ich habe mir eine Installation für meine Anwendung mit dem Installshield Express von D2007 Pro erzeugt.
Nun bietet der Installationsassistent die Möglichkeit eine Seriennummer prüfen zu lassen indem man eine DLL angibt.
Die Beispiele die IS mitliefert sind leider in C++

Leider habe ich bisher noch nie DLLs angelegt.
Ich habe dann versucht mit dem Delphi DLL-Experten eine DLL anzulegen die einfach nur eine Funktion zur Prüfung enthält.

Hier der code
Delphi-Quellcode:
library validateSerialNr;

{ Wichtiger Hinweis zur DLL-Speicherverwaltung: ShareMem muss sich in der
  ersten Unit der unit-Klausel der Bibliothek und des Projekts befinden (Projekt-
  Quelltext anzeigen), falls die DLL Prozeduren oder Funktionen exportiert, die
  Strings als Parameter oder Funktionsergebnisse übergeben. Das gilt für alle
  Strings, die von oder an die DLL übergeben werden -- sogar für diejenigen, die
  sich in Records und Klassen befinden. Sharemem ist die Schnittstellen-Unit zur
  Verwaltungs-DLL für gemeinsame Speicherzugriffe, BORLNDMM.DLL.
  Um die Verwendung von BORLNDMM.DLL zu vermeiden, können Sie String-
  Informationen als PChar- oder ShortString-Parameter übergeben. }

uses
  SysUtils,
  Classes;

{$R *.res}

begin

function checkSerial (sSerialString : string) : boolean;
begin
  if (sSerialString = 'Willi')
    then result := true
    else result := false;
end;

end.
Der Compliler sagt mir immer "Anweisung erwartet aber Funktion gefunden".
Wo liegt mein Fehler?

P.S. Wofür ist der Hinweis auf "ShareMem"
Muss ich mich bei einer DLL um die Speicherverwaltung kümmern?

:gruebel:

DeddyH 2. Nov 2007 18:52

Re: Prüfen einer Seriennummer bei der Installation
 
Versuch es mal so:
Delphi-Quellcode:
library validateSerialNr;

{ Wichtiger Hinweis zur DLL-Speicherverwaltung: ShareMem muss sich in der
  ersten Unit der unit-Klausel der Bibliothek und des Projekts befinden (Projekt-
  Quelltext anzeigen), falls die DLL Prozeduren oder Funktionen exportiert, die
  Strings als Parameter oder Funktionsergebnisse übergeben. Das gilt für alle
  Strings, die von oder an die DLL übergeben werden -- sogar für diejenigen, die
  sich in Records und Klassen befinden. Sharemem ist die Schnittstellen-Unit zur
  Verwaltungs-DLL für gemeinsame Speicherzugriffe, BORLNDMM.DLL.
  Um die Verwendung von BORLNDMM.DLL zu vermeiden, können Sie String-
  Informationen als PChar- oder ShortString-Parameter übergeben. }
 

uses
  sharemem;

function checkSerial(Eingabe:string): Boolean;stdcall;
begin
  Result := Eingabe = 'Willi';
end;

exports
  checkSerial;

begin
end.
Ich hoffe, ich habe jetzt keinen Fehler gemacht, lange keine DLL mehr geschrieben :oops:

little_budda 2. Nov 2007 18:59

Re: Prüfen einer Seriennummer bei der Installation
 
Danke für die schnelle Hilfe.

Das Projekt lässt sich jetzt jedenfalls fehlerfrei erzeugen.

Ich werde die Funktion jetzt etwas ausweiten und dann mal einen Praxistest machen.

Gruß Holger.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz