AGB  ·  Datenschutz  ·  Impressum  







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

Delphi 7 DLL-Exports überladener Methoden?

Ein Thema von himitsu · begonnen am 9. Sep 2023 · letzter Beitrag vom 17. Sep 2023
Antwort Antwort
Benutzerbild von himitsu
himitsu

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

AW: Delphi 7 DLL-Exports überladener Methoden?

  Alt 15. Sep 2023, 17:24
Also so richtig versteh ich das irgendwie nicht.

Beispiel: NECBuild knallt sogar, wenn man keine Parameter angibt, obwohl diese Funktion eindeutig ist.
Komischer Weise knallte sie auch, als ich die Parameterliste dran ließ,
aber dann sah ich im Git (erste versuche), dass es doch mal ging, auch mit den Parametern ... wieder rein und nun geht es doch.

Dann ging der Export mit name 'xxx' nicht, aber später ging es plötzlich.
Ursprünglich hatte ich Eindeutiges nicht umbenannt, aber nun überall einheitlich mindestens den Unitname davor.



Ansonsten hab ich jetzt erstmal alle Funktionen als Exporte drin,
aber Zuvieles wieder auskommentiert, weil es nicht kompilieren wollte.

Aber nun noch rausbekommen, warum so Einiges immernoch einfach nicht will.

Ich mach jetzt nochmal bissl Pause und hab die VM ganz runtergefahren.
Aber falls wer Lust hat und schauen möchte, ob er/sie/es was findet ... siehe GitHub.



https://github.com/geheimniswelten/DECMath-Legacy
Branch: DLL

DLL-Projekt: \Part_II\DECMath.dpr bzw. GroupDECMath.bpg
Delphi7-DCU: \Archive\D7\*.dcu
PAS-Header: \Archive\Part_II\LibIntf\*.pas sowie \Archive\Part_II\*.pas

[add]
Zusammenfassung aller PAS-Headers: \Part_II\DECMath_Headers.txt aus \Archive\Part_II\LibIntf\*.pas
Zusammenfassung des DCU-Disassembly: \Part_II\DECMath_Disassemble.txt aus \Archive\D7\*.dcu
ohne DefaultParams und sortiert, aber vergleichbar ... braucht noch bissl
[/add]
[add2]
Mist, nach Abgleich sind die Parameter der DCU und Header-PAS praktisch identisch.
Bis auf ein nutzloses Overload, aber das sollte egal sein.
[/add2]


---

Branch: main = letzter/aktueller Stand nach Version+Datum
Branch: orginal-zip-content-by-date = alter ZIP-Inhalt nach Datum (Versionen als Unterverzeichnisse)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (15. Sep 2023 um 23:36 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

[gelöst] Delphi 7 DLL-Exports überladener Methoden?

  Alt 16. Sep 2023, 19:09
Ahhhhhhhhhhhh, i werd' irre.


Hab die Gründe raus.
  • einmal zwei Fehler beim Kopieren (falscher TypBezeichner)
  • wenn bei einer Funktion kein overload deklariert ist, dann darf man keine Parameter angeben
  • selbst wenn eine Funktion eindeutig ist, aber dennoch mit overload deklariert wurde, müssen Parameter angegeben werden (auch wenn es unmenschlich Viele sind, die man gern weglassen würde)
  • typlose Var/Const-Parameter lassen sich nicht angeben ... also geht nur, wenn ohne overload und man sie weglassen kann



PS:
Also das compiliert hier unter D7:
Delphi-Quellcode:
exports
  NSet(var A: IRational; const N: IInteger; const D: IInteger = nil),
  NSet(var A: IRational; const N: IInteger; const D: IInteger),
  NSet(var A: IRational; const N, D: IInteger);
Selbst das kompiliert anstandslos,
auch wenn so drei Mal die selbe Funktion mit dem gleichen Namen exportiert werden
und Delphi hier nichmal eine Warnung wirft, dass hier mehrmals der gleiche Name "NSet" in der Exports-Liste steht.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (16. Sep 2023 um 19:18 Uhr)
  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 22:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz