It seems to me that the best way would be to split your program into more than one executable . An exe compiled as 64-bit can link to another 32-bit exe, it uses the 32-bit third party DLL you need. You will have some overhead in connection, and you will have to start / stop the dependent process, but you will have a clear program architecture.
If you are developing your own C ++ application, you can implement a second EXE, for example, as a COM-out-of-process object (LocalServer or even LocalService). You can consider a way to implement a COM server in C # (see here ). Sometimes this method can simplify the implementation, and you can take advantage of both .NET and your own programming.
source share