dummzeuch 1671 Posted Wednesday at 02:27 PM (edited) Is there a way to call a 64 bit dll from 32 bit Delphi code? As far as I know that's not possible, but I have been wrong before. I am aware of this Article on Process Interoperability on Learn Microsoft.com. And there is Using 64-bit DLLs in 32-bit Processes with Out-of-process COM which is about C# and WoW64Injection: Loading a 64-bit DLL in a 32-bit process which probably won't help at all. (Hm, maybe this should have gone to RTL + VCL ?) Edited Wednesday at 02:28 PM by dummzeuch Share this post Link to post
Remy Lebeau 1642 Posted Wednesday at 03:00 PM 24 minutes ago, dummzeuch said: Is there a way to call a 64 bit dll from 32 bit Delphi code? In a word, no. Certainly not directly, anyway. 24 minutes ago, dummzeuch said: I am aware of this Article on Process Interoperability on Learn Microsoft.com. Basically. Load the DLL into a 64bit process, and then use some kind of IPC with the 32bit process. 24 minutes ago, dummzeuch said: And there is Using 64-bit DLLs in 32-bit Processes with Out-of-process COM which is about C# The article is using C#, but the technique is not limited to C#. A COM out-of-proc server is aits own EXE process, and can be instantiated by 32bit and 64bit clients. So, you can write a 64bit server that wraps the 64bit DLL (or use COM's own DllSurrogate if the DLL is itself a COM object) , and then a 32bit client can use the server's COM object. 24 minutes ago, dummzeuch said: and WoW64Injection: Loading a 64-bit DLL in a 32-bit process which probably won't help at all. I'm not familiar with that. It looks interesting but I wouldn't trust it in production code. 1 Share this post Link to post
Brandon Staggs 386 Posted 7 hours ago On 8/20/2025 at 10:00 AM, Remy Lebeau said: Basically. Load the DLL into a 64bit process, and then use some kind of IPC with the 32bit process. This is the only viable solution. Share this post Link to post