Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   FreePascal (https://www.delphipraxis.net/74-freepascal/)
-   -   dll erzeugen (https://www.delphipraxis.net/150868-dll-erzeugen.html)

khh 29. Apr 2010 08:32


dll erzeugen
 
hallo zusammen,
ich möchte unter Lazarus eine dll erzeugen um Klassen aus dieser zu verwenden.
Was mach ich falsch, dass ich beim Kompilieren keine dll sondern eine exe erzeuge :-(

hab grad mal ein Beispiel aus dem Netz genommenum diese Möglichkeit zu testen.
Lazarus erstelltbeim Erzeugen einer Bibliothek ein neues Projekt und beim Kompilieren ne exe :-(

was mach ich falsch?

hier ´nur mal der DLL-Code.
EDIT: der Link zum Beitrag Link
Delphi-Quellcode:

library MWStObj;
{$mode objfpc}{$H+}


uses

  SysUtils,

  Classes,

  Obj_Unit in 'Obj_Unit.pas';



type

  TMWSt98 = class(TMWSt)

  private

    FMWStSatz : Real;

  public

    constructor Create;

    function GetBrutto(const aNetto: Currency): Currency; override;

    procedure SetPercent(const aPercent : Integer); override;

  end;



constructor TMWSt98.Create;

begin

  inherited Create;

  FMWStSatz := 1.15;

  Assert(MWST_VERSION = 1, 'Falsche Unit-Version!');

end;



function TMWSt98.GetBrutto(const aNetto: Currency): Currency;

begin

  Result := aNetto * FMWStSatz

end;



procedure TMWSt98.SetPercent(const aPercent : Integer);

begin

  FMWStSatz := 1.0 + (aPercent/100);

end;



{ Schnittstellenprozedur }



function CreateMWStObj: TMWSt98; stdcall;

begin

  Result := TMWSt98.Create;

end;



{ Export der Schnittstellenprozedur }



exports

  CreateMWStObj resident;

begin

  { nichts zu tun }

end.
danke für eure Hilfe

Gruss KH

JamesTKirk 4. Mai 2010 12:46

Re: dll erzeugen
 
Hi!

Also erstmal weiß ich nicht, ob das so (mit dem Klassenexportieren) funktionieren wird, aber es heißt ja bekanntlich "Versuch macht klug".

Bei mir kompiliert das auf jeden Fall ohne Probleme zu einer DLL und ich sehe auch nicht, warum das wegen dem Code nicht funktionieren sollte, also muss es an deinen Einstellungen liegen.

Du arbeitest mit Lazarus, oder? Kannst du mal bitte schauen was unter "Projekt"->"Projekteinstellungen"->"Anwendung"->"Zieldateiname" steht? Etwas wie "irgendwas.exe" ist hier fehl am Platze.
Ansonsten wüsste ich jetzt auf Anhieb nicht, was das Problem sein könnte.

Gruß,
Sven

PS: Das resident kannst du übrigens weglassen, des ist nur zur Abwärtskompatibilität da (auch in Delphi).


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:56 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