In this post, I'm talking about native windows applications and DLLs created with C++ and Win32 API.
From the post Can I load a 32 bit DLL into a 64 bit process on Windows? I understand that 64-bit process cannot use 32-bit DLLs directly. One way to get around this is to host the DLL in a 32-bit process and use some form of IPC. This being the case, what is the reason behind this? Why can't 64-bit process use 32-bit DLLs? Could it be the differences between the x86 and x64 instruction sets?