AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi 32bit-DLL mit LoadLibrary auf einem 64bit-System laden?
Thema durchsuchen
Ansicht
Themen-Optionen

32bit-DLL mit LoadLibrary auf einem 64bit-System laden?

Ein Thema von SearchBot · begonnen am 25. Mai 2016 · letzter Beitrag vom 17. Sep 2022
Antwort Antwort
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
328 Beiträge
 
Delphi 12 Athens
 
#1

AW: 32bit-DLL mit LoadLibrary auf einem 64bit-System laden?

  Alt 25. Mai 2016, 13:09
Eine 64Bit-Anwendung erfordert zwingend 64Bit-DLLs.

Kannst also aufhören, es zu versuchen.
Ja, das weiß ich. Es ist ja auch eine 32bit-Anwendung auf einem 64bit-System. Folglich würde im Hintergrund das WoW64-System aktiv sein, wie ich jetzt gegoogelt habe. Und ich weiß auch, daß 64bit-DLLs nicht mit 32bit-Anwendungen zusammenarbeiten. Daher habe ich ja auch eine 32bit-DLL mit meiner 32bit-Anwendung im Einsatz, allerdings auf einem 64bit-System...

Nicht unbedingt...
Es gäbe die Möglichkeit mit einer zwischengeschalteten 32Bit Anwendung auch eine 64Bit Anwendung über IPC
und WM_COPYDATA 32Bit Dll's anzusprechen.

Ob das mit Treiber Dll's möglich ist habe ich noch nicht probiert.
Hingegen bei normalen DLL's (keine Treiber) ist das sehr wohl machbar.

gruss
Ich habe nochmal die DLL angesehen - es ist eigentlich kein Treiber, sondern eine Schnittstelle zum Treiber (den ich in der x86at64bit-Version (weiß nicht, ob ich den richtigen Begriff dazu verwende) installiert hab). Wenn ich die DLL austausche, geht es trotzdem nicht.

In der x86at64bit-Version, die das Hersteller-Treibersetup im "C:\Program Files (x86)" installiert hat, steht der String
6f1ea56521e5ead1af5152081ea42a971ddbb85c78cbf3.WD1011_64_NL_Newport im Vergleich zu
6f1ea7e7635967b1d4fec0f13548d3b1f10f6484144339.WD1011_32_NL_Newport in der win32-Version, die ich bisher einwandfrei auf meinem 32bit-System genutzt habe.

Und soeben schrieb mir
... Daher mein Tip: untersuche die DLL, um die es geht, genauer mit einem PE Analysetool, z.B. FileAlyzer o.ä.
Worauf müsste ich da speziell achten?
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#2

AW: 32bit-DLL mit LoadLibrary auf einem 64bit-System laden?

  Alt 25. Mai 2016, 13:19
Worauf müsste ich da speziell achten?
Lad die DLL im Tool und wirf einen Blick auf die Architektur bzw. Machine. Das ist je nach benutztem Tool unterschiedlich benannt. Bei FileAlyzer ist es auf der Registerkarte "PE Header" zu finden; entweder steht dort "Machine: 64-bit Windows (AMD)" oder "Machine: Intel 386".

[EDIT]
Achso, eine Sache noch: DLLs haben genau wie Programme (EXE) Abhängigkeiten. Die sollte man sich ebenfalls anschauen, ob die allesamt erfüllt sind. Sonst schlägt das Laden einer DLL ebenfalls fehl. Bei FileAlyzer findet man das auf der Registerkarte "PE Imports".
[/EDIT]

MfG Dalai

Geändert von Dalai (25. Mai 2016 um 13:29 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: 32bit-DLL mit LoadLibrary auf einem 64bit-System laden?

  Alt 25. Mai 2016, 13:29
Also Nochmal!

Zitat:
Alle Hardwaregeräte benötigen 64-Bit-Treiber, um mit einer 64-Bit-Version von Windows funktionsfähig zu sein.
Selbst dann wenn deine Anwendung 32Bit und die Schnittstelle (API) in 32Bit ausgelegt ist.
Du kannst über eine 32Bit Schnittstelle nicht mit einen 64Bit Treiber kommunizieren.
Da hilft auch ein Austauschen nichts.

Das Hardwaregerät wird ohne 64Bit Treiber nicht funktionieren.

gruss
  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 23:46 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