Dovrei creare una DLL con cl.exe. I file da includere sono i seguenti:
NativeDemo.h
NativeDemo.ccodice:/* 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
e la riga di codice che non funziona è la seguente:codice:/* 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"); }
qui sotto trovate l'errore:codice:Cl /LD NativeDemo.c
Su questo forum mi sono state consigliate altre soluzioni come:codice:Microsoft (R) C/C++ Optimizing Compiler versione 17.00.50727.1 per x64 Copyright (C) Microsoft Corporation. Tutti i diritti riservati. NativeDemo.c NativeDemo.c(5) : fatal error C1034: jni.h: nessun percorso impostato per i file di inclusione
ma comunque inefficaci. Credo che mi resti da capire come specificare in maniera corretta il percorso verso jni.h e jni_md.h.codice:Cl /LD /I C:\glassfish3\jdk7\include\ NativeDemo.c

Rispondi quotando

