I have a 32-bit exe that needs to dynamically load a 64-bit dll when it detects that the operating system is 64-bit. Is this possible through LoadLibrary? If not, is there another way to accomplish the same goal?
Calling LoadLibrary on a 64-bit dll from a 32-bit process
Asked Answered
On a side note, the 32-bit instruction set is called "x86", not "x32". It doesn't really make sense these days, but I guess 8086 deserves to remembered :) –
Mopes
As previously mentioned, 32-bit code cannot load 64-bit code in the same process. You'll have to load it into a different process (CreateProcess() ?) and use IPC to coordinate.
Here's a link to a set of ways of doing IPC on windows: msdn.microsoft.com/en-us/library/aa365574(VS.85).aspx. Also check out my answer on another thread for more ways of doing this: https://mcmap.net/q/1314428/-remote-procedure-calls/… –
Murrell
You can't mix 64-bit and 32-bit code in the same process. You'll need a 32-bit version of the DLL.
WoW64Injection seems what you are looking for.
if the OP can change the code of the 32-bit process to call LoadLibrary then there's no reason to not compile it as 64-bit and load the library directly –
Prosy
That may even be true, but it's still not an answer to the question. –
Emory
© 2022 - 2025 — McMap. All rights reserved.