Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.207 Beiträge
 
Delphi 12 Athens
 
#5

AW: Delphi 7 DLL-Exports überladener Methoden?

  Alt 10. Sep 2023, 09:54
und die D7-Hilfe sagt, dass es damals auch schon gehen sollte.
Also das compiliert hier unter D7:
Delphi-Quellcode:
library Project1;

{ Wichtiger Hinweis zur DLL-Speicherverwaltung: ShareMem muss sich in der
  ersten Unit der unit-Klausel der Bibliothek und des Projekts befinden (Projekt-
  Quelltext anzeigen), falls die DLL Prozeduren oder Funktionen exportiert, die
  Strings als Parameter oder Funktionsergebnisse übergeben. Das gilt für alle
  Strings, die von oder an die DLL übergeben werden -- sogar für diejenigen, die
  sich in Records und Klassen befinden. Sharemem ist die Schnittstellen-Unit zur
  Verwaltungs-DLL für gemeinsame Speicherzugriffe, BORLNDMM.DLL.
  Um die Verwendung von BORLNDMM.DLL zu vermeiden, können Sie String-
  Informationen als PChar- oder ShortString-Parameter übergeben. }

  

uses
  SysUtils,
  Classes;

{$R *.res}

type
  IRational = interface
  ['{4270A50C-2619-40F9-AAF8-2CCB6A67A423}']
  end;

  IInteger = interface
  ['{0E5936CA-C257-4820-86E4-3B192133E8D6}']
  end;

// procedure NSet(var A: IRational; const N: IInteger; const D: IInteger = nil);
procedure NSet(var A: IRational; const N: IInteger; const D: IInteger); overload;
begin
end;

procedure NSet(var A: IRational; const N: Integer; const D: Integer); overload;
begin
end;

procedure NSet(var A: IRational; const N: Int64; const D: Int64); overload;
begin
end;

procedure NSet(var A: IRational; const B: IRational); overload;
begin
end;

procedure NSet(var A: IRational; const B: Extended); overload;
begin
end;


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';


begin
end.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat