Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Funktion eines Datenmoduls innerhalb einer DLL exportieren (https://www.delphipraxis.net/55749-funktion-eines-datenmoduls-innerhalb-einer-dll-exportieren.html)

mika 26. Okt 2005 10:36


Funktion eines Datenmoduls innerhalb einer DLL exportieren
 
Hallo Delphi-Praxis,

ich hätte da mal eine Frage :D

ich muss eine kleinere Anbindung an unsere Warenwirtschaft schreiben in Form einer DLL. Da ich das noch nie gemacht habe, habe ich schon beim Start ein kleineres Problem.

Innerhalb meiner DLL habe ich ein Datenmodul angelegt, nun habe ich in dem Public Bereich eine Function angelegt die ich gerne exportieren würde, hier mal der code:

DLL-Quelltext
Delphi-Quellcode:
library f2_plugin;

{ Wichtiger Hinweis zur DLL-Speicherverwaltung: ... blablabla }
 
uses
  SysUtils,
  Classes,
  uMain in 'uMain.pas' {Datenbank: TDataModule};

{$R *.res}

exports
  Datenbank.Angebot_Erstellen; // <- Hier will ich die Funktion exportieren

begin
  // Initialisierung der DLL
end.
Der Quelltext des Datenmoduls
Delphi-Quellcode:
unit uMain;

interface

uses
  SysUtils, Classes;

type
  TDatenbank = class(TDataModule)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    Function Angebot_Erstellen: Integer; stdcall;
  end;

var
  Datenbank: TDatenbank;

implementation

{$R *.dfm}

Function TDatenbank.Angebot_Erstellen: Integer; stdcall;
Begin
  Result := 1; // Erstmal nur zum Test
End;

end.
Aber irgendwie klappt das nicht :( Kann man nur Methoden aus dem Projektquelltext exportieren oder wo liegt mein Fehler? Ich benutze Delphi 6 falls das irgendie hilft!


Besten Dank schonmal für eure Hilfe :thumb:

MarcoWarm 26. Okt 2005 10:41

Re: Funktion eines Datenmoduls innerhalb einer DLL exportier
 
mit Export kannst du lediglich eine Funktion oder Prozedur exportieren. Was Du hier versuchst, ist der Export einer Klassenmethode. Das funktioniert nicht.

Was mir noch aufgefallen ist:
Du gehst in deinem Beispiel davon aus, daß das Objekt Datenbank existiert. Es wird jedoch beim Laden der Dll nicht automatisch instantiiert. Das müsstest du also in einer Extra-Prozedur oder in deiner "Angebot Erstellen"-Prozedur machen.

mika 26. Okt 2005 10:59

Re: Funktion eines Datenmoduls innerhalb einer DLL exportier
 
Zitat:

Zitat von MarcoWarm
1.) mit Export kannst du lediglich eine Funktion oder Prozedur exportieren. Was Du hier versuchst, ist der Export einer Klassenmethode. Das funktioniert nicht.

2.) Was mir noch aufgefallen ist:
Du gehst in deinem Beispiel davon aus, daß das Objekt Datenbank existiert. Es wird jedoch beim Laden der Dll nicht automatisch instantiiert. Das müsstest du also in einer Extra-Prozedur oder in deiner "Angebot Erstellen"-Prozedur machen.

Hallo Marco,

erstmal danke für die Antwort, das heisst also bei 1.) das ich ich alle Methoden in der Klasse des Datenmoduls über Prozeduren/Funktionen ansprechen muss um sie zu exportieren? Naja ist ja nicht so das Problem :D

zu 2.) Ist mir bekannt, aber danke für den hinweis :thumb:

MarcoWarm 26. Okt 2005 13:55

Re: Funktion eines Datenmoduls innerhalb einer DLL exportier
 
Zitat:

Zitat von mika
das ich ich alle Methoden in der Klasse des Datenmoduls über Prozeduren/Funktionen ansprechen muss um sie zu exportieren?

genau das :D


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