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 :

JNA - Problème d'allocation dynamique


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2011
    Messages : 3
    Par défaut JNA - Problème d'allocation dynamique
    Bonjour,

    Je travail actuellement avec JNA afin de toucher à la wlanapi (Wifi de windows).

    Struct c :
    typedef struct _WLAN_INTERFACE_INFO {
    GUID InterfaceGuid;
    WCHAR strInterfaceDescription[WLAN_MAX_NAME_LENGTH];
    WLAN_INTERFACE_STATE isState;
    } WLAN_INTERFACE_INFO, *PWLAN_INTERFACE_INFO;

    typedef struct _WLAN_INTERFACE_INFO_LIST {
    DWORD dwNumberOfItems;
    DWORD dwIndex;

    #ifdef __midl
    [unique, size_is(dwNumberOfItems)] WLAN_INTERFACE_INFO InterfaceInfo[*];
    #else
    WLAN_INTERFACE_INFO InterfaceInfo[1];
    #endif

    } WLAN_INTERFACE_INFO_LIST, *PWLAN_INTERFACE_INFO_LIST;

    Fonction C :

    DWORD WINAPI WlanEnumInterfaces(
    _In_ HANDLE hClientHandle,
    _Reserved_ PVOID pReserved,
    _Out_ PWLAN_INTERFACE_INFO_LIST *ppInterfaceList
    );


    En java :
    La fct :
    public int WlanEnumInterfaces(Pointer hClientHandle, Pointer pReserved, PWlanInterfaceInfoList ppInterfaceList);

    public class PWlanAvailableNetworkList extends Structure{
    public static class ByReference extends PWlanAvailableNetworkList implements Structure.ByReference {}
    public WlanAvailableNetworkList.ByReference WlanAvailableNetworkList;

    @Override
    protected List getFieldOrder() {
    return Arrays.asList(new String[] { "WlanAvailableNetworkList"});
    }

    };

    public class WlanInterfaceInfoList extends Structure {
    public static class ByReference extends WlanInterfaceInfoList implements Structure.ByReference {
    }

    public int dwNumberOfItems;
    public int dwIndex;
    public WlanInterfaceInfo InterfaceInfo[] = new WlanInterfaceInfo[10];

    @Override
    protected List getFieldOrder() {
    return Arrays.asList(new String[] { "dwNumberOfItems", "dwIndex", "InterfaceInfo" });
    }
    }


    Le problème c'est la ligne que j'ai mi en rouge.
    En effet, JNA va allouer automatiquement 10 structs de type WlanInterfaceInfo. Or, c'est la fonction WlanenumInterface qui devrait définir l'allocation à faire !
    Donc je suis coincé. En plus, ses allocations peuvent me placer dans une zone mémoire interdite ce qui génère une jolie petite exception !

    Quelqu'un a t'il déjà été confronté à ça ?

    Ref API wlanapi : http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Penses aux balises [ CODE ] sinon c'est illisible

    Je pense qu'il faut que tu utilises PWlanAvailableNetworkList.ByReference...

    Mais tu veux faire quoi comme exactement avec tout cela ?
    L'API de NetworkInterface ne te suffit pas ?


    a++

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/09/2009, 17h40
  2. problème d'allocation dynamique.
    Par watiero dans le forum C++
    Réponses: 15
    Dernier message: 18/02/2008, 18h06
  3. Problème d'allocation dynamique
    Par addsomemusic dans le forum Fortran
    Réponses: 3
    Dernier message: 11/01/2008, 10h45
  4. Problème d'allocation dynamique
    Par Hybrix dans le forum C++
    Réponses: 4
    Dernier message: 09/12/2007, 22h12
  5. Question sur les problèmes d'allocation dynamique
    Par slylafone dans le forum C++
    Réponses: 23
    Dernier message: 25/10/2004, 14h18

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