2010-03-17 7 views
9

Ich habe eine 32-Bit-Exe, die eine 64-Bit-DLL dynamisch laden muss, wenn es erkennt, dass das Betriebssystem 64-Bit ist. Ist das durch LoadLibrary möglich? Wenn nicht, gibt es einen anderen Weg, dasselbe Ziel zu erreichen?Aufrufen LoadLibrary auf einer 64-Bit-DLL von einem 32-Bit-Prozess

+4

Nebenbei bemerkt, der 32-Bit-Befehlssatz heißt "x86", nicht "x32". Es macht heutzutage keinen Sinn, aber 8086 verdient es in Erinnerung zu bleiben :) – sbk

Antwort

2

Sie können 64-Bit- und 32-Bit-Code nicht im selben Prozess mischen. Sie benötigen eine 32-Bit-Version der DLL.

12

Wie bereits erwähnt, kann der 32-Bit-Code im selben Prozess keinen 64-Bit-Code laden. Sie müssen es in einen anderen Prozess laden (CreateProcess()?) Und IPC verwenden, um zu koordinieren.

+1

Hier ist ein Link zu einer Reihe von Möglichkeiten, IPC unter Windows zu machen: http://msdn.microsoft.com/en-us/library/ aa365574 (VS.85) .aspx. Überprüfen Sie auch meine Antwort auf einen anderen Thread für weitere Möglichkeiten, dies zu tun: http://stackoverflow.com/questions/446411/remote-procedure-calls/446615#446615 – Laserallan

Verwandte Themen