ZERO3の着信音などでMIDIを鳴らしているDLLの調査です。
FRING_LIB.DLLのエクスポート関数名はDependency Walker というソフトで調べることが出来るんだけど、調べた関数の使い方がまったくわからない。
ダミーのエクスポート関数を実装したダミーのFRING_LIB.DLLを作って、元にあったDLLを上書きして、どのように呼ばれているのか調べてみた。
ダミー関数は呼ばれるとログを吐くようにしてある。
着信音の設定でMIDIを視聴してみた結果は以下のとおり。
音は当然ならないが再生中と表示されたのでうまくごまかせている感じ。
| fmpj_dll_init | 272304 | 0 |
| fmpj_sys_open | 570878756 | 2 |
| fmpj_data_ex_getformatid | 273184 | 2854 |
| fmpj_player_open | 272308 | 570878724 |
| fmpj_player_setdata | 0 | 570878732 |
| fmpj_data_ex_getformatid | 273184 | 2854 |
| fmpj_info_player_params | 570878728 | 2818 |
| fmpj_player_setparam | 0 | 0 |
| fmpj_player_seek | 0 | 0 |
| fmpj_player_play | 0 | 2 |
| fmpj_sys_close | 1 | 2 |
| fmpj_dll_quit | 11272 | 2 |
リストの数値は、エクスポート関数の引数がわからないのでint型の引数を2つと仮定して取得してみた結果。
引数の値が大きいものは、ポインタかハンドルの可能性もある。
ここまで調べてみたけど、やっぱり使い方はわからないままでした(^^;