IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

[JNI] : Type unsigned char* vers jbyteArray


Sujet :

Entrée/Sortie Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Points : 5
    Points
    5
    Par défaut [JNI] : Type unsigned char* vers jbyteArray
    Bonjour,

    Je développe actuellement sous Android une application qui utilise une librairie écrite en C. Pour appeler les fonctions natives de cette librairie, j'utilise Java Native Interface (JNI).
    Je rencontre actuellement un problème pour passer d'un type unsigned char* --> jbyteArray...
    Pour passer d'un jbyteArray --> unsigned char*, je passe par le code ci-dessous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ...
    jbyte *b;
    b = (*env)->GetByteArrayElements(env, jbyteArr, &IsCopy);
    memcpy(ucArray, b, (*env)->GetArrayLength(env, b));
    (*env)->ReleaseByteArrayElements(env, jbyteArr, b, 0);
    ...
    Avec ce code, mon buffer ucArray est bien alimenté et les données sont bien copiées. Mais je peine a réussir l'inverse...

    merci d'avance.

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par lautac Voir le message
    Bonjour,

    Je développe actuellement sous Android une application qui utilise une librairie écrite en C. Pour appeler les fonctions natives de cette librairie, j'utilise Java Native Interface (JNI).
    Je rencontre actuellement un problème pour passer d'un type unsigned char* --> jbyteArray...
    Pour passer d'un jbyteArray --> unsigned char*, je passe par le code ci-dessous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ...
    jbyte *b;
    b = (*env)->GetByteArrayElements(env, jbyteArr, &IsCopy);
    memcpy(ucArray, b, (*env)->GetArrayLength(env, b));
    (*env)->ReleaseByteArrayElements(env, jbyteArr, b, 0);
    ...
    Avec ce code, mon buffer ucArray est bien alimenté et les données sont bien copiées. Mais je peine a réussir l'inverse...

    merci d'avance.
    Finalement, j'ai trouvé un moyen pour effectuer ma conversion. Je mets le code ci-dessous en exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    ...
    int len = 256;
    unsigned char *ucArray;
    jbyteArray jbyteArr;
     
    // On initialise le nouveau buffer jbyteArray
    jbyteArr = (*env)->NewByteArray(env, len);
     
    // On convertit le unsigned char* -> jbyte*
    jbyte* b = (jbyte*)ucArray;
     
    // On copie les données dans le jbyteArray
    (*env)->SetByteArrayRegion(env, jbyteArr, 0, len, b);
    ...
    Voila

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD17] équivalent du type 'unsigned char' en C pour Windev
    Par nokwih dans le forum WinDev
    Réponses: 2
    Dernier message: 09/02/2012, 08h21
  2. Casting char vers unsigned corrompu
    Par Sylvain Rousseau dans le forum Langage
    Réponses: 5
    Dernier message: 05/11/2009, 14h33
  3. pb conversion unsigned char vers char *
    Par FamiDoo dans le forum C
    Réponses: 11
    Dernier message: 24/08/2006, 18h11
  4. [Clé de registre] Conversion char* vers unsigned char*
    Par The Lord of Nesquik dans le forum C
    Réponses: 7
    Dernier message: 03/07/2006, 23h30
  5. Types : char vs. unsigned char
    Par Herode dans le forum C++
    Réponses: 3
    Dernier message: 15/02/2006, 21h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo