So some time ago I was investigating an issue that I knew would be coming up soon. We have a DLL that links to 32-bit versions of a certain library. There is no x64 version of this library available to us and we have no practical options in regards to replacing it.
When I performed this initial investigation I found an article or two describing a method by which a 64-bit process can utilize a 32-bit DLL (Windows) via a COM "server". Unfortunately I lost the links I had saved and I have now been searching for over an hour with no luck.
Is anyone here familiar with the process I am describing? I can't for the life of me remember which magical incantation I used to pull up the correct result in a search and, of course, it is now implementation time. Thanks in advance for any help you guys can offer, I will continue searching in the meantime.
This may not be enough, but it might get you started: Process Interoperability
And Accessing 32-bit DLLs from 64-bit code
Client of Out-of-process Local Server is an example of running a COM out of process. If you are running a com server out of process your client can be 64bit and server 32bit.
You can create a COM exe or service which will always run as 32 bit. Inside this 32 bit exe, you can access your 32 bit dll which links to 32 bit versions of the library.
The below block diagram explains the basics
Take a look at this link for details:
http://blog.mattmags.com/2007/06/30/accessing-32-bit-dlls-from-64-bit-code/#more-355