ugnagブログ

たいした内容はありません。思いつきで書いているだけ。
開発日記がメインかな。

<< 速度設定 | main | マウスコンピューター/Lm-iS400 >>

さて困った。。。

gogo.dllをJAVAから使う際に問題が見つかった。
gogo.dllの入力としてファイル名を渡す場合には問題ないのだが、ユーザー関数を渡す場合に問題になる。

ユーザー関数は、当然C言語になるわけで、しかもDLLになる。

DLLにコールバックされた場合、そのユーザー関数はJAVAにコールバックする事ができない。
対象となるJAVAオブジェクトが特定できないためだ。


対応方法は2つ。

A.gogo.dllをカスタマイズし、コールバックする際にJAVAオブジェクトのインスタンスを一緒に渡すようにする。

B.gogo.dllからコールバックされるJNIのDLL内のスタティック領域にインスタンスを保存しておく。この場合、複数の処理を同時に行うことができない。


Aは難しそうだからBかな。

実質的には問題ないはずだ。
プログラム・開発(MP3用ツール) | comments (0) | -

Comments

Comment Form

本文に書いて下さい
本文にh抜きで書いて下さい