scaryman
Messages postés492Date d'inscriptionvendredi 30 janvier 2004StatutMembreDernière intervention16 mai 200712 3 sept. 2006 à 20:33
Salut
Le int étant un type primitif, le fichier de définition jni.h le gère directement et donc le compilateur C peut utiliser ceux-ci comme des int traditionnels.
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 3 sept. 2006 à 22:14
Salut :
Voici ce que je veux savoir :
JNIEXPORT jint JNCALL Java_myClass_method
(JNIEnv * env, jobject instance, jint n)
{
int entier = n; // est ce que cela est valide sinon comment faire ?
// comment récupérer la valeur de n pour l'affectée à entier
// ....
int retour = ...; //...
return retour;// est ce que cela est valide sinon comment faire ?
// un int en C est sur 2 octets
// un int en Java est sur 4 octets
}
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 4 sept. 2006 à 00:05
Salut :
On peut donc confondre les types primitifs du C/C++ avec ceux de JNI.
Merci Tous ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 4 sept. 2006 à 01:09
Salut,
pour finaliser ta question voici ce qui et fait dans jni_md.h et jni.h
typedef int jint;
#ifdef _LP64 /* 64-bit Solaris */
typedef long jlong;
#else
typedef long long jlong;
#endif
typedef unsigned char jboolean;
typedef unsigned short jchar;
typedef short jshort;
typedef float jfloat;
typedef double jdouble;
/*
* jboolean constants
*/
#define JNI_FALSE 0
#define JNI_TRUE 1
donc comme tu peut le voir c'est la meme chose sauf pour les char qui en java sont codé sur 2 octets (pour le support de l'unicode) contrairement au C/C++ ou un char et codé sur 1octet c'est donc pour cela que jchar vaut un short
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."