AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Problem mit statischer dll in Lazarus
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit statischer dll in Lazarus

Ein Thema von iphi · begonnen am 5. Nov 2020 · letzter Beitrag vom 29. Nov 2020
 
iphi

Registriert seit: 13. Feb 2009
266 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
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz