AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

dll erzeugen

Ein Thema von khh · begonnen am 29. Apr 2010 · letzter Beitrag vom 4. Mai 2010
Antwort Antwort
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#1

dll erzeugen

  Alt 29. Apr 2010, 08:32
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
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#2

Re: dll erzeugen

  Alt 4. Mai 2010, 12:46
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).
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:46 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