Вызов сборки C # без компиляции с C ++ / CLI довольно сложен.Вот некоторые из идей, которые у меня были:
a) Создание dll-оболочки для смешанных сборок (смешанные сборки содержат как собственный код, так и управляемый код).Добавьте ссылку на свою сборку C #, затем создайте в своей dll функции, которые вызывают код C # через C ++ / CLI, затем определите точки входа dll (__declspec (dllexport)) для этих функций.Теперь вы можете ссылаться на dll, так как он предоставит родной интерфейс, понятный C ++, а внутри dll может вызывать ваш код C #.(Запоздалая мысль: Вы, вероятно, можете скомпилировать это в .lib, это было бы проще, чем в DLL.)
Пошаговое руководство. Создание и использование статической библиотеки
b)Используйте Mono для вызова сборки C #.Mono имеет C API, который вы можете использовать для загрузки и использования управляемых сборок без использования c ++ / CLI.Это то, что я бы сделал, если C ++ / CLI не является опцией.
Внедрение Mono
c) Если ваша функция имеет относительно простую сигнатуру ввода / вывода (нетбольшие объекты и т. д.) вы можете рассмотреть возможность компиляции вашей функции C # в исполняемый файл и использовать стандартный ввод / вывод для вызова функции.Вы должны будете нести входные аргументы и выходные данные в виде текста.Затем заставьте C ++ запустить исполняемый файл, передать ему некоторый ввод и прочитать вывод.