Sto leggendo un libro di java e c'è un capitolo che mi fa davvero impazzire "I metodi Nativi".
Il mio problema è "semplicissimo", devo creare una DLL!
Ho un file con nome NativeDemo.h e un file NativeDemo.c, il mio manuale dice che in teoria con questi due file dovrei riuscire a ottenere questa benedetta DLL.
Vi riporto il contenuto dei file, mi date una mano per favore?
P.S.: Non conosco il C++...
- - - - - - - - - - - - - - - - - - - - - - - - -
NativeDemo.h
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class NativeDemo */
#ifndef _Included_NativeDemo
#define _Included_NativeDemo
#ifdef _ _cplusplus
extern "C" {
#endif
/*
* Class: NativeDemo
* Method: test
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_NativeDemo_test
(JNIEnv *, jobject);
#ifdef _ _cplusplus
}
#endif
#endif
NativeDemo.c
/* This file contains the C version of the
test() method.
*/
#include <jni.h>
#include "NativeDemo.h"
#include <stdio.h>
JNIEXPORT void JNICALL Java_NativeDemo_test(JNIEnv *env, jobject obj)
{
jclass cls;
jfieldID fid;
jint i;
printf("Starting the native method.\n");
cls = (*env)->GetObjectClass(env, obj);
fid = (*env)->GetFieldID(env, cls, "i", "I");
if(fid == 0) {
printf("Could not get field id.\n");
return;
}
i = (*env)->GetIntField(env, obj, fid);
printf("i = %d\n", i);
(*env)->SetIntField(env, obj, fid, 2*i);
printf("Ending the native method.\n");
}