В прошлом я всегда писал оболочку .NET для библиотек DLL COM и C ++ и помещал ее в свою собственную библиотеку классов.
Оболочка может обрабатывать все вызовы взаимодействия с dll.
Он также позволяет выполнять преобразование данных и создание отчетов об ошибках, которые были бы полезны обеим сторонам (вашему приложению NET и COM DLL).
Я думаю, что это должно решить вашу проблему.
РЕДАКТИРОВАТЬ
На самом деле я думал об этом дальше, и вышеописанный процесс не будет работать.Это связано с тем, что целевые процессоры X86, x64 и Itanium существенно отличаются друг от друга.
отредактировано x64 может запускать целевой код x86, как и Itanium (который использовал эмулятор и теперь расширение)EM64T)
Здесь больше информации здесь
Что вы можете сделать, хотя это запуск вашей библиотеки x86 внутри отдельного процесса и реализация некоторой формы связи между ними.Я полагаю, именно поэтому вы упомянули WCF.Я говорю это потому, что программное обеспечение x86 должно работать в системе x64.
Это будет означать, что ваше решение будет иметь два исполняемых файла: один x86 и один AnyCPU, поскольку сборка может быть предназначена только для одного типа процессора.