Beste Delphi / FPC fanaten,
Ik loop tegen een probleempje op, waarschijnlijk niet zo extreem groot probleem maar toch.
In mijn programma probeer ik een functie vanuit een zelfgemaakte DLL te gebruiken, echter in Delphi werkt dit wel naar behoren, maar in FPC krijg ik het toch niet voor elkaar, terwijl er aan de code niets is gewijzigd.
DLL Code:
Code:
library UAMPG;
{$mode objfpc}{$H+}
uses
Classes, Sysutils
{ you can add units after this };
function RandomPassword(PLen: Integer): string; export;
var
str: string;
begin
Randomize;
str := 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0912345678-+,.!@#$%^&*()';
Result := '';
repeat
Result := Result + str[Random(Length(str)) + 1];
until (Length(Result) = PLen)
end;
function SimplePassword(PLen: Integer): string; export;
var
str: string;
begin
Randomize;
str := 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0912345678';
Result := '';
repeat
Result := Result + str[Random(Length(str)) + 1];
until (Length(Result) = PLen)
end;
exports
RandomPassword,
SimplePassword;
begin
end.
begin
end.
Aanroepen vanuit het testprogramma :
Code:
unit uaminv;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
Buttons, ExtCtrls;
type
{ TAUMadd }
TAUMadd = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
btnChksite: TSpeedButton;
btnPassword: TSpeedButton;
Panel1: TPanel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
procedure btnPasswordClick(Sender: TObject);
procedure Edit3Change(Sender: TObject);
procedure Edit5Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
AUMadd: TAUMadd;
function RandomPassword(PLen: Integer): string; external 'UAMPG.dll';
function SimplePassword(PLen: Integer): string; external 'UAMPG.dll';
implementation
{$R *.lfm}
{ TAUMadd }
procedure TAUMadd.FormCreate(Sender: TObject);
begin
AUMAdd.Position := poMainFormCenter;
btnChkSite.Visible := false;
btnPassword.Visible := false;
end;
procedure TAUMadd.Edit3Change(Sender: TObject);
begin
btnChkSite.Visible := True;
end;
procedure TAUMadd.btnPasswordClick(Sender: TObject);
begin
Edit5.Text := SimplePassword(10);
end;
procedure TAUMadd.Edit5Change(Sender: TObject);
begin
btnPassword.Visible := True;
end;
end.
Nu kan ik er totaal niet achter komen waar het probleem ligt, de hints staan aan, maar deze geven niets aan, ook de DLL compileert gewoon.
Kortom, wie kan mij een heel klein beetje op de goede weg helpen, alvast bedankt.
Bookmarks