Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#1

Delphi 7 DLL-Exports überladener Methoden?

  Alt 10. Sep 2023, 00:26
Delphi-Version: 7
Moin, irgendwie funktioniert das bei mir nicht.

Delphi-Quellcode:
exports
//NSet(var A: IRational; const N: IInteger; const D: IInteger = nil) name 'NSetIInt',
  NSet(var A: IRational; const N: IInteger; const D: IInteger) name 'NSetIInt',
  NSet(var A: IRational; const N: Integer; const D: Integer) name 'NSetInt',
  NSet(var A: IRational; const N: Int64; const D: Int64) name 'NSetI64',
  NSet(var A: IRational; const B: IRational) name 'NSetIRat',
  NSet(var A: IRational; const B: Extended) name 'NSetExt',
  ...
Zitat:
[Fehler] Unit1.pas(39): Bezeichner 'NSet' kann nicht exportiert werden
[Fehler] Unit1.pas(39): '=' erwartet, aber ';' gefunden
[Fehler] Unit1.pas(39): ';' erwartet, aber ')' gefunden
[Fehler] Unit1.pas(39): ';' erwartet, aber ',' gefunden
[Fehler] Unit1.pas(40): '=' erwartet, aber '(' gefunden
...
Mit oder ohne DefaultParams, mit oder ohne CONST/VAR, ..... immer wird gemeckert, sobald es vom overload ist.

Wobei der zweite Folgefehler ... das = also der DefaultParam ist nicht beim N:IInteger, sondern erst beim D:IInteger.

Ganz ohne Pamameterliste, kommt die erste Fehlermeldung erst nach dem Komma, was da ja auch OK ist.


Auch Overloaded über mehrere Units, wenn eine Unit nur eine der Überladungen hat, dann hilft auch kein Namespace.
Delphi-Quellcode:
exports
  IDPrimes.NInt;



Am Liebsten hätte ich die DCU gern zur OBJ gemacht, um sie im Delphi 11 direkt linken zu können. (aber das geht nur aus einer PAS zu erzeugen)
Drum versuche ich das DECMath jetzt in eine DLL zu packen.
$2B or not $2B

Geändert von himitsu (10. Sep 2023 um 00:34 Uhr)
  Mit Zitat antworten Zitat