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
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.733 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

AW: Delphi DLL von 32 auf 64 Bit umstellen

  Alt 25. Apr 2022, 12:41
Funktioniert denn der Aufruf der 64 Bit Delphi DLL aus einem 64 Bit Delphi-Programm heraus?

Das wäre das erste, was ich testen würde, um evtl. falsche Deklarationen bei den Import-Funktionen auszuschließen bzw. es darauf einzuschränken. Die üblichen Fehler beim Aufruf von DLLs mit verschiedenen Programmiersprachen sind nach meiner Erfahrung:
  • falsche Calling Convention
  • falsches Alignment von Datentypen
  • falsche Datentypen
  • fehlerhafte Speicherverwaltung (z.B. Allozierung von Speicher in der DLL, Freigabe dann im Programm oder umgekehrt)
Thomas Mueller
  Mit Zitat antworten Zitat
shebang
Online

Registriert seit: 7. Feb 2020
151 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Delphi DLL von 32 auf 64 Bit umstellen

  Alt 25. Apr 2022, 12:59
Knallt es wirklich beim LoadLibrary selbst oder erst danach und was sagt der Rückgabewert der Funktion?
  Mit Zitat antworten Zitat
calibra301

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

AW: Delphi DLL von 32 auf 64 Bit umstellen

  Alt 25. Apr 2022, 15:01
Hallo,

definitiv beim LoadLibraray. Das ist ja das komische.
Die DLL exportiert 3 Funktionen, debugging in der DLL is nicht. Wird nicht erreicht.
  Mit Zitat antworten Zitat
BerndS

Registriert seit: 8. Mär 2006
Ort: Jüterbog
498 Beiträge
 
Delphi 12 Athens
 
#4

AW: Delphi DLL von 32 auf 64 Bit umstellen

  Alt 25. Apr 2022, 15:25
Gib es in deinen Units zur DLL irgendwas im initialization Abschnitt?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Delphi DLL von 32 auf 64 Bit umstellen

  Alt 25. Apr 2022, 15:39
falsche Calling Convention
Das ist egal.

Unter Win64 gibt es bloß noch eine Convention. (andersweitige "alte" Angaben werden einfach vom Compiler ignoriert)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
TomyN

Registriert seit: 8. Nov 2006
Ort: Bayreuth
289 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Delphi DLL von 32 auf 64 Bit umstellen

  Alt 25. Apr 2022, 20:01
Könnte es evtl. ein Problem mit der String-Codierung sein?
Ansonsten würden mir noch Records einfallen, die mit falscher Ausrichtung verwendet werden.
Den Tip, dass ganze erstmal aus einer Delphi-Anwendung heraus aufzurufen, halte ich für eine sehr gute Idee.

Baue auch gerade eine 32Bit Delphi DLL auf 64Bit um, da ist aktuell ehr das Problem, dass die Doku des aufrufenden 64Bit Programms nicht vorhanden ist, und ich so aus der 32Bit Doku 'Datentypraten' spielen darf.
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Delphi DLL von 32 auf 64 Bit umstellen

  Alt 26. Apr 2022, 05:34
Hallo,
erstelle mal die DLL neu, aber leer, dann ohne Exports

Und dann immer mehr reinnehmen.


Die 32Bit-Sache hast Du auf dem gleichen Rechner?
Heiko
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.079 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Delphi DLL von 32 auf 64 Bit umstellen

  Alt 26. Apr 2022, 15:20
Mit den SysInternals Process Monitor prüfen, welche DLL genau geladen wird!!
https://docs.microsoft.com/en-us/sys...nloads/procmon

Wette einen symbolischen Euro, dass das LoadLibrary irgendeine andere rumliegende 32-Bit DLL lädt.
Gerne mal "zu Testzwecken" in den Windows-Ordner oder sonstwo in die PATH-Umgebungsvariable kopiert.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Delphi DLL von 32 auf 64 Bit umstellen

  Alt 26. Apr 2022, 17:16
Da sollte Windows aber dann eine andere Fehlermeldung liefern, vonwegen falscher Binärtyp.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.054 Beiträge
 
Delphi 12 Athens
 
#10

AW: Delphi DLL von 32 auf 64 Bit umstellen

  Alt 26. Apr 2022, 20:53
Vielleicht wird auch eine weitere DLL als Abhängigkeit benötigt, die als 32-Bit Variante gefunden wird. Beides sieht man im genannten Process Monitor.
Sebastian Jänicke
AppCentral
  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 21:36 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