2012-04-13 1 views
9

Я заинтересован в использовании Mono для Android и MonoTouch для создания мобильных приложений, которые могут использовать большое количество родных библиотек C++, которые у меня есть. Могу ли я получить некоторые конкретные инструкции о том, как вызывать методы или включать код в мое окончательное мобильное приложение на iOS или Android?Как использовать собственные библиотеки C++ в Mono для Android (monodroid) и MonoTouch

Я посмотрел документацию Xamarin онлайн, это довольно загадочно для меня, как для новичков в программировании мобильных приложений (Mono for Android и MonoTouch). В случае создания приложения monodroid в Visual Studio (это то, что мне больше всего знакомо), каковы конкретные шаги, которые мне нужно вызывать для функции native из моей программы MonoDroid. Для библиотек C я могу скомпилировать в .DLL (динамическую) или .LIB (статическую) форму. У меня также создается впечатление, что динамические библиотеки нельзя использовать для мобильных приложений.

+0

Off верхней части моей головы, я не думаю, что вы можете. Я вполне мог ошибаться в этом, так как я не делал ничего особо низкого уровня/сумасшедшего с MonoDroid, и я не использовал MonoTouch. –

ответ

9

Теоретически возможно связывать библиотеки C++ с использованием P/Invokes, но это не особенно приятно (так как вы будете привязываться к именам измененных функций, которые совершенно непонятны и, вероятно, будут меняться между компиляторами/операционными системами) ,

Рекомендованный способ доступа к библиотекам C++ - создать C API и использовать P/Invoke (вы можете найти много информации о том, как делать P/Invoking в Интернете, вот одно место для запуска: http://mono-project.com/Dllimport) ,

Кроме того, для MonoTouch невозможно использовать динамические библиотеки (это ограничение Apple), вы должны использовать статические библиотеки. Я не знаю, существуют ли какие-либо ограничения для Mono для Android.

2

Это сообщение в блоге от Мигеля является интересным, прочитанным на эту тему.

CXXI: Bridging the C++ and C# worlds.

Я не знаю, если CXXI, доступен на этот раз, но это проект, чтобы держать глаза на и поддержку.

5

Лучший выбор - использовать Swig для создания привязки для вашей библиотеки C++, к которой вы можете получить доступ с C#.

Вот описание:

http://www.swig.org/Doc1.3/CSharp.html

 Смежные вопросы

  • Нет связанных вопросов^_^