message d'erreur JNI

message d'erreur JNI - Java - Programmation

Marsh Posté le 25-07-2005 à 11:00:24    

Voila, en compilent un programme C qui fais appelle à la bibliotheque JNI.h de java, j'ai ce message d'erreur:

Citation :

error: base operand of `->' has non-pointer type `JNIEnv_'


 
le programme plance sur ces ligne:

Code :
  1. jdouble *mpV = (*env)->GetDoubleArrayElements(env, acquisition, 0);
  2. ...
  3. (*env)->ReleaseDoubleArrayElements(env, acquisition, mpV, 0);


 
Si quelqu'un pourrais m'éclairer sur la chose. Le probleme c'est que sur un autre programme, avec les même ligne, je n'ai pas de probleme.
 
Merci


Message édité par blaise_laporte le 25-07-2005 à 11:58:27
Reply

Marsh Posté le 25-07-2005 à 11:00:24   

Reply

Marsh Posté le 25-07-2005 à 11:58:51    

Aprés test trés simple, il semblerai que ce soit le double qui pose probleme.

Reply

Marsh Posté le 27-07-2005 à 03:18:39    

Si tu regardes le prototype de ta fonction tu verras que env est un pointeur sur un JNIEnv
 
donc je suppose que l'accès au methodes doit se faire ainsi:
 

Code :
  1. jdouble *mpV = env->GetDoubleArrayElements(env, acquisition, 0);


 
ou
 

Code :
  1. jdouble *mpV = (*env).GetDoubleArrayElements(env, acquisition, 0);

Reply

Marsh Posté le 27-07-2005 à 09:31:48    

d'apres ce que j'avais croisé de la doc sur les JNI, la solution de blaise_laporte fonctionne sur un compilo C et celle de chicotruss sur un compilo C++

Reply

Marsh Posté le 27-07-2005 à 10:21:34    

j'y comprend rien...  
 
que je compile avec gcc ou g++, quelque soit la ligne de code, j'ai une erreur (pas la même si j'utilise l'option de chicotruss)
 
mais le pire c'est que cette ligne de code  

Code :
  1. jdouble *tableau =(*env)->GetDoubleArrayElements(env, nombre, 0);


 
fonctionne sur un autre programme...  :pt1cable:  :pt1cable:
 
Y a pas quelqu'un qui connais l'API JNI sur le bout de doigts dans l'assemblé?
J'suis au désespoir...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed