Привет, ЛОР. Сейчас будет тупняк и всякое ненужно, но кто-то здесь наверняка сможет посоветовать что-нибудь дельное.
Итак, есть набор классов на C++, есть проект на C# (Mono). Нужно как-то использовать код на C++ в этом проекте. Какие способы я вижу:
1) Обернуть все методы в extern «C», скомпилировать это всё как разделяемую библиотеку, и дальше дёргать эти методы как функции. Я так никогда не делал, прочитал о способе на StackOverflow. Думаю, получится жутко некрасиво.
2) Использовать CppSharp. Оно позволяет создавать C#-биндинги. Кто-то пользовался? Какие здесь есть подводные камни?
3) Переписать C++-код на C#. Не пойдёт, т.к. тогда нужно будет писать параллельно две версии (от плюсовой не отказываюсь).
4) Переписать C++-код на C и скомпилировать опять же как разделяемую библиотеку. Тоже не пойдёт, см. пункты 1 и 3.
Что бы вы посоветовали? Вариант «не использовать Сишарп» не подходит — его использую не я, а вот плюсокод — мой.