Возможно, вы захотите пройти через C ++ / CLI на своем пути из C # в C ++.
Вы могли бы написать оболочку C ++ / CLI, которая в управляемом методе вызывала бы неуправляемый код C ++ напрямую. Обработайте любые преобразования (например, типы данных, System.String в char *) в управляемом методе C ++ / CLI. В C # этот код C ++ / CLI будет отображаться так же, как любая другая внешняя сборка, вызывайте его везде, где вам нужно.
Я думаю, что отчасти проблема заключается в том, как проект C # Winforms связан с проектом C ++ MFC. Если C ++ кодирует простую библиотеку обработки, то оболочка C ++ / CLI звучит правильно для меня. Если приложение C ++ является основным и загружает проект C # для сбора этой информации, тогда может быть что-то еще лучше.