Utilizing a 32-bit DLL in a 64-bit process via COM

前端 未结 3 1304
难免孤独
难免孤独 2020-12-10 06:16

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 versio

相关标签:
3条回答
  • 2020-12-10 07:06

    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

    0 讨论(0)
  • 2020-12-10 07:10

    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.

    0 讨论(0)
  • 2020-12-10 07:20

    This may not be enough, but it might get you started: Process Interoperability

    On 64-bit Windows, an out-of-process 32-bit COM server can communicate with a 64-bit client, and an out-of-process 64-bit COM server can communicate with a 32-bit client. Therefore, if you have a 32-bit DLL that is not COM-aware, you can wrap it in an out-of-process COM server and use COM to marshal calls to and from a 64-bit process.

    And Accessing 32-bit DLLs from 64-bit code

    Migrating your 32-bit Windows application to a 64-bit machine can be problematic if you have 32-bit DLLs that you cannot re-write. Mike Becker shows you how you can access 32-bit DLLs from 64-bit code using built-in IPC mechanisms...

    0 讨论(0)
提交回复
热议问题