AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi DLL von 32 auf 64 Bit umstellen

Delphi DLL von 32 auf 64 Bit umstellen

Ein Thema von calibra301 · begonnen am 25. Apr 2022 · letzter Beitrag vom 26. Apr 2022
Antwort Antwort
calibra301

Registriert seit: 20. Mär 2009
97 Beiträge
 
Delphi XE8 Professional
 
#1

Delphi DLL von 32 auf 64 Bit umstellen

  Alt 25. Apr 2022, 09:25
Hallo,

bin mal wieder an meinem "Lieblingsprojekt"...Eine C++ Exe ruft eine C++ DLL auf welche dann mit einer
Delphi DLL spricht. Läuft alles seit Jahr und Tag...als 32 Bit.

Nun wurden die C++ Teile als 64 Bit gebaut und auch die Delphi DLL wurde auf 64 Bit umgestellt.
Leider fliegt mir die 64 Bit Variante schon beim LoadLibrary wo die C++ DLL die Delphi DLL laden will um die Ohren.
(Access Violation,...). Den C++ Teil schliesse ich aus. Klammere ich das LoadLibrary und die benutzten Funktionen aus
geht alles.

Gibts einen "Leitfaden" für eine solche Umstellung ?
Plattform hinzufügen und dann als 64 Bit kompilieren reicht leider nicht

In der DLL sind hauptsächlich mathematische Funktionen aber auch ein Form.
Die ursprüngliche Form wurde mal in Delphi 5 programmiert, nach Umstellung auf XE8 nun Alexandria Prof.

Danke !
Calli
  Mit Zitat antworten Zitat
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
721 Beiträge
 
Delphi XE5 Professional
 
#2

AW: Delphi DLL von 32 auf 64 Bit umstellen

  Alt 25. Apr 2022, 10:01
Hallo Calli,
vor einiger Zeit hat Emil (= Venice2) etwas Passendes zu Deiner Frage gepostet: https://www.delphipraxis.net/208861-...mbinieren.html
Leider habe ich die technischen Details wegen der Komplexität seiner Lösung nicht verstanden, aber vielleicht kann jemand hier zur Klärung ein einfache(re)s Beispiel bringen, wie Du von einer 64-Bit-Exe eine 32-Bit-DLL fehlerfrei aufrufen kannst.

Grüße, Andreas
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)

Geändert von Andreas13 (25. Apr 2022 um 10:03 Uhr)
  Mit Zitat antworten Zitat
calibra301

Registriert seit: 20. Mär 2009
97 Beiträge
 
Delphi XE8 Professional
 
#3

AW: Delphi DLL von 32 auf 64 Bit umstellen

  Alt 25. Apr 2022, 10:08
Hallo,
wünschenswert wäre es ja die Delphi DLL auch auf 64 Bit zu bauen.
Es liegt ja alles im Quelltext vor und die C++ Sachen sind als 64 Bit gebaut.
Komisch für mich ist ja das es schon beim LoadLibrary auf der C++ Seite knallt.
DLL Export Tools zeigen die Exports korrekt an. Es sind nur 2 weitere dabei die Delphi wohl
"dazu baut".

Debugversuche schlagen fehl. Breakpoints in den exportierten Funktionen werden nicht erreicht.
  Mit Zitat antworten Zitat
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
721 Beiträge
 
Delphi XE5 Professional
 
#4

AW: Delphi DLL von 32 auf 64 Bit umstellen

  Alt 25. Apr 2022, 10:48
Hallo,
ich programmiere fast ausschließlich technisch-wissenschaftliche Berechnungen, auch Berechnungs-DLL’S wie Du, aber ausschließlich für die 32-Bit-Plattform.
Daher möchte ich Dich daran erinnern, daß auf der 64-Bit-Plattform der Type Extended, den man für genaue(re) Berechnungen unbedingt braucht, leider nicht mehr gibt: Dort ist Extended = Double; Deshalb solltest Du evt. weiterhin über die Benutzung der genaueren 32-Bit-DLL in Deinen 64-Bit-Anwendungen nachdenken.
Gruß, Andreas
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)

Geändert von Andreas13 (25. Apr 2022 um 10:51 Uhr)
  Mit Zitat antworten Zitat
calibra301

Registriert seit: 20. Mär 2009
97 Beiträge
 
Delphi XE8 Professional
 
#5

AW: Delphi DLL von 32 auf 64 Bit umstellen

  Alt 25. Apr 2022, 11:52
Hallo Andreas,

das ist schon ausgeschlossen. Es werden nur doubles benutzt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Delphi DLL von 32 auf 64 Bit umstellen

  Alt 25. Apr 2022, 12:20
Debugger benutzen und schauen wo es knallt?


Irgendwelche wilden Integer-Pointer-Casts, bzw. Integer-Object-Casts verwendet?
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:39 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