![]() |
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 ![]()
Delphi-Quellcode:
danke für eure Hilfelibrary 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. Gruss KH |
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 03:41 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