Как я отметил в комментариях, это, вероятно, связано с тем, что ваша эталонная DLL-библиотека является 32-битной.У меня недавно была эта проблема, вы не можете загружать DLL различной битности в один процесс.Чтобы обойти это, в идеале вам нужно выровнять разрядность библиотек DLL.
Если это действительно не вариант, вы можете создать новый процесс для размещения ошибочной библиотеки DLL и упорядочить вызовы при помощиIPC, однако, это далеко не идеально.Я полагаю, что есть также способ объединить библиотеку DLL с другой библиотекой правильной битности, но, вероятно, под капотом снова распределяются межпроцессные вызовы.
В прошлом я успешно использовал IPC длядоступ к 32-битной DLL из 64-битного приложения.К счастью для меня, у маршала не было ничего сложного, это была базовая семантика запроса-ответа.