Мне кажется, что лучшим способом было бы разделить вашу программу на более чем один исполняемый файл .EXE-файл, скомпилированный как 64-битный, может связываться с другим 32-битным EXE-файлом, использующим 32-битную стороннюю DLL, которая вам нужна.У вас будут некоторые накладные расходы в связи, и вам придется реализовать запуск / останов зависимого процесса, но у вас будет четкая архитектура программы.
Если вы разрабатываете нативное приложение C ++, вы можете реализовать второй EXE, например, какCOM ++ внепроцессный объект (LocalServer или даже LocalService).Вы можете рассмотреть способ реализации COM-сервера в C # (см. здесь ).Иногда такой способ может упростить реализацию, и вы можете использовать преимущества как .NET, так и собственного программирования.