dll Einstiegspunkte überladen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
exc-jdbi
Beiträge: 64
Registriert: So 3. Aug 2014, 03:37

dll Einstiegspunkte überladen

Beitrag von exc-jdbi »

Guten Tag Community

Ich versuchs mal hier, da ich einfach nichts gefunden habe.

Ich würde gerne in meiner Dll die Einstiegspunkte überladen. Aber es funktioniert nicht.
Geht das überhaupt? Hat mir jemand einen guten Tip.

Hier ein einfaches Beispiel als Veranschaulichung

Code: Alles auswählen

 
library dllTools;
{$mode objfpc}{$H+}
uses
  Classes;
function Sum(i:int64):int64;stdcall;overload;
begin
  Result:= 2*i;
end;
function Sum(i1,i2:int64):int64;stdcall;overload;
begin
  Result:=i1+i2;
end;
 
exports
 
//Wie wird das noch für OS X beschrieben??
{$IFDEF DARWIN}  {OS X entry points}
  Start name '_Start',
{$ENDIF}
  Sum(i:int64),
  Sum(i1,i2:int64) name 'SumSum';
 
 
begin
end. 
 
Danke für die Hilfe

Freundliche Grüsse

exc-jdbi

exc-jdbi
Beiträge: 64
Registriert: So 3. Aug 2014, 03:37

Re: dll Einstiegspunkte überladen

Beitrag von exc-jdbi »

Guten Morgen Community

Ich geh davon aus, dass es in Lazarus nicht möglich ist.

Trozdem danke.

Freundliche Grüsse

exc-jdbi

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: dll Einstiegspunkte überladen

Beitrag von Socke »

exc-jdbi hat geschrieben:Ich geh davon aus, dass es in Lazarus nicht möglich ist.
Das ist weder in Free Pascal noch in irgend einer anderen Programmiersprache möglich. Sämtliche Betriebssysteme unterscheiden die Funktionen in einer Bibliothek an unterschiedlichen Namen beziehungsweise Indizes. Eine weitere Unterscheidung an Paramtern und deren Typen (wie beim Overloading) funktioniert auf dieser Ebene nicht, da diese Informationen schlicht nicht vorhanden sind.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

exc-jdbi
Beiträge: 64
Registriert: So 3. Aug 2014, 03:37

Re: dll Einstiegspunkte überladen

Beitrag von exc-jdbi »

Guten Morgen Socke

Danke für die Antwort.

Ich möchte hier an dieser Stelle nichts konkretes behaupten. Schon aus dem Grunde, da ich das nicht beweisen kann.

Aber, ich war mir sicher, schon einmal so etwas gesehen zu haben. In glaube in einer früheren Delphinversion. Ähnlich wie ich es dargestellt habe.

Ich wollte wirklich nur wissen, ob dies in Lazarus möglich ist.


Freundliche Grüsse

exc-jdbi

Benutzeravatar
theo
Beiträge: 10869
Registriert: Mo 11. Sep 2006, 19:01

Re: dll Einstiegspunkte überladen

Beitrag von theo »

Vllt findest du hier eine Info: http://wiki.freepascal.org/shared_library

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: dll Einstiegspunkte überladen

Beitrag von mschnell »

exc-jdbi hat geschrieben:Aber, ich war mir sicher, schon einmal so etwas gesehen zu haben. In glaube in einer früheren Delphinversion
Delphi hat "Runtime Packages", was eine erweiterte Art von DLL ist. Da geht das vermutlich, weil beim Übersetzen die überladenen Funktionen unterschiedliche Namen bekommen.


"Runtime Packages" gibt es in Lazarus (noch) nicht.

-Michael

exc-jdbi
Beiträge: 64
Registriert: So 3. Aug 2014, 03:37

Re: dll Einstiegspunkte überladen

Beitrag von exc-jdbi »

danke theo und mschnell

Hab's jetzt so wie im WIKI gelöst. Standardmässig halt.
Aber es funktioniert bis jetzt. Morgen werde ich mich eventuell noch mit MessageDlg und InputBox in der Dll befassen. Mal schauen ob ichs hinkriege. 8)

Wenn es mir die Zeit erlaubt werde ich mich auch mit den "Runtime Packages" sicher einmal befassen.

Freundliche Grüsse

exc-jdbi

Antworten