Использование существующих библиотек C++ в MonoTouch и MonoDroid
Моно нуби здесь,
Я хочу использовать существующую библиотеку C++ в приложении, которое я пишу для iPhone и Android. Я пытаюсь найти лучшую стратегию, чтобы связать ее с моим проектом Mono, чтобы изменения от платформы к платформе были минимальными.
Я попытался прочитать об этом в Интернете и наткнулся на CXXI, P/Invoke и т. Д., Но не мог понять, работают ли эти методы для всех платформ. Кроме того, я не мог выяснить, достаточно ли стабильно CXXI или подходит ли он MonoDroid и MonoTouch.
Какой метод, по вашему мнению, является наиболее удобным и наиболее кроссплатформенным?
1 ответ
На данный момент самый простой подход - это написать обертки C в вашей библиотеке C++, а затем написать p/ вызывает для вашего (нового) C API. Этот подход использовался для разработки Moonlight (реализация Silverlight с открытым исходным кодом), где ядром был C++, но все было представлено как C для управляемого мира.
Для некоторых платформ предъявляются особые требования (например, для iOS вам потребуется создать статическую библиотеку), но это не должно вас останавливать.
Лучше всего связывать вещи с помощью такого инструмента, как Swig