2009-04-21 15 views

答えて

2

普通のSTLだけを探しているのであれば、おそらくJavaライブラリを代わりに使うことができます。ただし、STLのラッピングを主張する場合、SWIGはJNIで基本的なメカニズムについてはthisを参照しているSTLラッピングを提供します。これは、比較的安定した、テストされたコードを生成するはずです。

0

これは可能ですが、私はそれを自分でやっていません。しかし、JNIコードは、あなたが非常に注意していなければJVMをクラッシュさせる可能性があります。また、JNIコードはJavaコードよりも保守がはるかに困難です。私はJava - > JNI - > STLとCOMコードが捨てられ、同じSTLとCOMとソケットにアクセスするC#に置き換えられたプロジェクトに参加しました。私たちは振り返ることはありません。

小文字の JNIの場合は、それだけの価値があります。 JNI経由で大規模なインターフェイスを作成する場合は、JavaではなくC#でSTLと対話するコンポーネントを記述し、ソケットを使用してC#コンポーネントとJavaコンポーネント間で通信することを強くお勧めします。これは、からに書込み、テスト、および保守が容易になります。

0

私はなぜ JavaからSTLライブラリを使用する必要があることを尋ねる必要があります。 Javaの膨大なライブラリ群によって提供されていないものがありますか?

自分のコードを呼び出す必要がある理由は理解しています(Javaコードのプロファイリングをして、それが必要であると判断した場合、そうでなければあなたの努力は浪費されます)。しかし、STLを呼び出す方法を尋ねているようですものを直接。

私たちはしばしばJNIに問題があり、コードの可搬性が低下するため、非常にが当社のショップで使用したい理由で、 Java提供のものは適切ではありません。

0

はい。 C++ STLクラスをJavaオブジェクトに変換するには、swig typemapを使用する必要がありました。逆もまた同様でした。 詳細については、 http://www.swig.org/Doc2.0/Android.html

をご覧ください。
関連する問題