Einzelnen Beitrag anzeigen

iphi

Registriert seit: 13. Feb 2009
262 Beiträge
 
Delphi 7 Personal
 
#1

Problem mit statischer dll in Lazarus

  Alt 5. Nov 2020, 13:25
Hallo,

ich habe einen kleinen Testcode in Delphi7 geschrieben, der eine dll statisch lädt und deren Funktionen nutzt. Der Code funktioniert in Delphi einwandfrei.

Wenn ich den Code nach Lazarus konvertiere, compiliert der zwar fehlerfrei, aber nach dem Start wird er sofort wieder ohne Fehlermeldung beendet. Die DLL befindet sich jeweils im selben Verzeichnis wie die exe und ist ebenfalls mit Delphi geschrieben. Was könnte da schief gehen?

Hier der konvertierte Lazarus-Code:
Delphi-Quellcode:
unit Unit1;

{$MODE Delphi}

interface

uses
  Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  procedure DllMessage; external 'TestLib.dll';
  function DLL_Calc(i: integer): integer; external 'TestLib.dll';
  procedure DLL_ShowForm; external 'TestLib.dll';

implementation

{$R *.lfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
DllMessage;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Label1.Caption:=inttostr(DLL_Calc(2));
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
DLL_ShowForm;
end;

end.
Hier noch die lpr:
Delphi-Quellcode:
program Project1;

{$MODE Delphi}

uses
  Forms, Interfaces,
  Unit1 in 'Unit1.pas{Form1};

{$R *.res}

begin

  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
Bei einem anderen Programm mit einer fremden dll habe ich in Lazarus ein ähnliches Problem, allerdings da mit Fehlermeldung "dll nicht gefunden", wohingegen der entsprechende Delphi-Code funktioniert.

Danke für Eure Hilfe!
  Mit Zitat antworten Zitat