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
 
ghubi01

Registriert seit: 18. Nov 2017
136 Beiträge
 
Delphi 12 Athens
 
#2

AW: Problem mit statischer dll in Lazarus

  Alt 5. Nov 2020, 18:17
Hallo,

kompilierst du in Lazarus mit dem 64Bit Compiler?
Hast du die TestLib.dll auch neu in Lazarus kompiliert, oder benutzt du die Datei, die du schon in D7 verwendet hast?
Delphi-Quellcode:
// Das Beispiel stammt von hier: https://www.delphi-treff.de/tutorials/objectpascal/dlls/4/
// Delphi 10.4.1
library TestDLL;

uses
  System.SysUtils,
  System.Classes;

{$R *.res}

  function addiere(zahl1, zahl2: integer): integer; stdcall;
  begin
    result := zahl1+zahl2;
  end;

exports
  addiere;

begin
end.

// Lazarus
library TestDLL;

{$mode objfpc}{$H+}

uses
  Classes;

function addiere(zahl1, zahl2: integer): integer; stdcall;
begin
  result := zahl1+zahl2;
end;

exports
  addiere;

begin
end.
Das Hauptprogramm:
Delphi-Quellcode:
unit Unit1;

{$mode objfpc}{$H+}

interface

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

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private

  public

  end;


  function addiere(zahl1, zahl2: integer): integer; stdcall;
  external 'TestDLL.dll';

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
  i:=addiere(2,3);
  Memo1.Lines.Add(IntToStr(i));
end;

end.
Ich habe hier testweise mit Delphi 10.4.1 eine Test-DLL erstellt (32Bit und 64Bit) und diese in ein Lazarus-Programm (64Bit Compiler)
eingebunden. Erwartungsgemäß gab es beim Programmstart mit der 32Bit-DLL eine Fehlermeldung und der Vorgang wurde abgebrochen.
Mit der 64Bit-DLL funktionierte es einwandfrei. Ebenso mit einer in Lazarus kompilierten DLL.

Ich vermute mal, dass du 64Bit und 32Bit durcheinander bringst.
  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 01:11 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