私はAndroidNDKを使用して、既存のライブラリを使用してアプリケーションを構築しようとしています。
次の関数がライブラリで宣言されています...
BYTE __stdcall InitRelay(fp_setbaud _setbaud, fp_get _get, fp_put _put, fp_flush _flush, fp_delay _delay){
これらは、InitRelayに渡されるパラメーターの宣言です...
typedef void (__stdcall *fp_setbaud)(WORD);
typedef short (__stdcall *fp_get)(WORD);
typedef void (__stdcall *fp_put)(BYTE);
typedef void (__stdcall *fp_flush)(void);
typedef void (__stdcall *fp_delay)(WORD);
typedef short (__stdcall *fp_ProgressUpdate)(WORD);
私はこのスレッドに行ったことがありますが、それでも何をすべきかわかりません。私がしていることと彼らがしていることの違いは、パラメーターとして関数ポインターを必要とするCのネイティブ関数を呼び出したいということです。
ネイティブコードでラッパー関数を書くことを考えていましたが、それは正しいですか?私の主な問題は、与えられたネイティブコードを変更できないことですが、新しい関数を追加することはできます。私は人々が私のJavaコードを投稿するように私に頼むことを知っているので、私はそうしますが、それは文字通り役に立たないです。これは、現在javaに意味をなさないパラメータを使用した単なるメソッド呼び出しです。
// InitRelay
InitRelay( fp_setbaud _setbaud, fp_get _get, fp_put, fp_flush _flush, fp_delay _delay );