2012-04-13 12 views
9

Android用MonoとMonoTouchを使用して、多数のC++ネイティブライブラリを使用できるモバイルアプリケーションを構築したいと考えています。メソッドを呼び出したり、コードをiOSやAndroidの最終的なモバイルアプリに組み込む方法に関する具体的な指示を教えてもらえますか?MonoでAndroid(monodroid)とMonoTouchのネイティブC++ライブラリを使用する方法

私はXamarinのドキュメントをオンラインで見てきましたが、モバイルアプリをプログラミングすることを初めて知りました(Mono for AndroidMonoTouch)。 Visual StudioでMonodroidアプリケーションを作成する場合(これは私がよく知っていることです)、MonoDroidプログラムからネイティブ関数を呼び出すために必要な具体的なステップは何ですか? Cライブラリの場合、.DLL(動的)または.LIB(静的)形式でコンパイルできます。ダイナミックライブラリをモバイルアプリに使用できないという印象を受けています。

+0

私の頭の上から、私はあなたができるとは思いません。私はMonoDroidで特に低レベル/クレイジーなことをしていないので、これについて間違っている可能性があり、私はMonoTouchを使用していません。 –

答えて

9

理論的には、P/Invokesを使用してC++ライブラリをバインドすることは可能ですが、これは特に良い方法ではありません(コンパイルされた関数名にはバインドされるため、かなり理解できず、コンパイラ/ 。

C++ライブラリにアクセスするには、C APIを作成し、P/Invokeを使用することをお勧めします(ウェブ上でP/Invokingを行う方法については、ここをクリックしてください:http://mono-project.com/Dllimport) 。

また、MonoTouchの場合、ダイナミックライブラリ(これはAppleの制限です)を使用することはできません。静的ライブラリを使用する必要があります。 Android用のMonoのような制限があるかどうかはわかりません。

2

Miguelのこのブログ記事は、このトピックに関する興味深い記事です。

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

CXXIがこの時間利用可能な場合、私は知りませんが、上とサポート目を維持するためのプロジェクトです。

5

C#からアクセスできるC++ライブラリ用のバインディングを作成するには、Swigを使用することをお勧めします。ここで

は説明です:

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

関連する問題