2012-04-13 19 views
9

Jestem zainteresowany wykorzystaniem Mono dla Androida i MonoTouch do budowania aplikacji mobilnych, które mogą korzystać z dużej liczby rodzimych bibliotek C++, które mam. Czy mogę uzyskać szczegółowe instrukcje dotyczące metod łączenia lub włączenia kodu do mojej końcowej aplikacji mobilnej na iOS lub Androida?Jak korzystać z natywnych bibliotek C++ w Mono na Androida (monodroid) i MonoTouch

Przyjrzałem się dokumentacji Xamarin online, która jest dla mnie dość zagadkowa, jako osoba, która dopiero zaczęła programować aplikacje mobilne (Mono for Android i MonoTouch). W przypadku budowania aplikacji monodroid w Visual Studio (co jest mi najlepiej znane), jakie są konkretne kroki, które muszę nazwać natywną funkcją z mojego programu MonoDroid. W przypadku bibliotek języka C mogę kompilować się w postaci .DLL (dynamiczny) lub .LIB (statyczny). Mam też wrażenie, że biblioteki dynamiczne nie mogą być używane w aplikacjach mobilnych.

+0

Off szczycie mojej głowy, nie sądzę, jest to możliwe. Mógłbym się dobrze pomylić z tym, ponieważ nie zrobiłem nic szczególnie niskiego poziomu/szału z MonoDroid i nie użyłem MonoTouch. –

Odpowiedz

9

Teoretycznie możliwe jest wiązanie bibliotek C++ za pomocą P/Invokes, ale nie jest to szczególnie przyjemny sposób (ponieważ będziesz wiązał się z nazwami funkcji, które są niezrozumiałe i prawdopodobnie zmienią się pomiędzy kompilatorami/systemami operacyjnymi) .

Zalecany sposób uzyskiwania dostępu do bibliotek C++ polega na utworzeniu C API i użyciu P/Invoke (można znaleźć wiele informacji o tym, jak zrobić P/Invoking w sieci, tutaj jest jedno miejsce na początek: http://mono-project.com/Dllimport) .

Ponadto, w przypadku MonoTouch nie jest możliwe korzystanie z bibliotek dynamicznych (jest to ograniczenie Apple), należy użyć bibliotek statycznych. Nie wiem, czy są jakieś ograniczenia dla Mono na Androida.

Powiązane problemy