1

だから私はこのCライブラリを構築しました。JNI を介して Java メソッドを呼び出し、すべて正常に動作します。しかし、Java から C アプリケーションにコールバックするにはどうすればよいでしょうか?

私は次のことを想像します: 私関数を持っています、私はそのアドレスを取り、私は関数ポインタを持っています. ポインターを Java に渡します (たとえば、コールバック、イベント ハンドラーなどとして)。Java内からその関数を呼び出すにはどうすればよいですか?

関数ポインタなどに動的かつ明示的にバインドする方法はありnative void method();ますか?

4

1 に答える 1

1

ネイティブの void method(); を動的かつ明示的にバインドする方法はありますか? 関数ポインタか何かに?

はいあります!RegisterNativesを使用して、Java メソッドを C/C++ 関数に動的にバインドできます。

実装を変更するには、最初に UnregisterNatives を呼び出してから、RegisterNatives を新たに呼び出します。

于 2013-06-03T22:19:45.130 に答える