Использование существующих библиотек 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

Другие вопросы по тегам