Calling LoadLibrary on a 64-bit dll from a 32-bit process
Asked Answered
S

3

9

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?

Staffer answered 17/3, 2010 at 23:24 Comment(1)
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
K
12

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.

Kornegay answered 17/3, 2010 at 23:36 Comment(1)
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
E
2

You can't mix 64-bit and 32-bit code in the same process. You'll need a 32-bit version of the DLL.

Elephantiasis answered 17/3, 2010 at 23:30 Comment(0)
E
0

WoW64Injection seems what you are looking for.

Emory answered 6/4, 2024 at 1:18 Comment(2)
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 directlyProsy
That may even be true, but it's still not an answer to the question.Emory

© 2022 - 2025 — McMap. All rights reserved.