NDKC関数を介してJavaSDKで宣言されたグローバルを変更したい。例:
public class NDKTest extends Activity
{
static int myglobal = 0;
static { System.loadLibrary("MyCLib"); }
static public native void incrementmyglobal();
....
およびMyCLib:
#include "NDKTest.h"
JNIEXPORT void JNICALL Java_NDKTest_incrementmyglobal
(JNIEnv * env, jobject jObj)
{
/*
this next line is obviously wrong, but illustrates how it would have
been done had it been a purely C program
*/
M.myglobal = M.myglobal + 1;
return;
}
だから私の質問は:
a /問題のある行の正しい構文は何ですか?
b / Cヘッダーファイルはどのように表示されますか?
c / Android.mkファイルはどのように表示されますか?
さまざまな「helloworld」NDKの例をコンパイルして実行できますが、Javaで宣言されたグローバルを変更する方法を示すものは見つかりません。超簡単な例をいただければ幸いです。
Linuxコマンドライン(ant debug)とシンプルなテキストエディター(emacs)を使用してプログラミングしています。私はEclipseを使用していません。何年もの間Cをプログラミングしていて、Javaの初心者です。宛先プラットフォームはAndroidです。乾杯!