Bonjour à tous,
Dans le cadre d'un stage, je dois interfacer un périphérique (un casque enregistrant les electroencéphalogrammes) et une application java (V.6)
Je possède les .h du casque et bien entendu, les sources de l'application.
Un autre stagiaire avait déjà interfacé un oculomètre avec l'application, et je dispose, pour m'aider, d'une partie de son travail.
J'ai compris le mécanisme de JNI (la marche a suivre) mais je me pose certaines questions:
-Les .h du casque possèdent un grand nombre de enum, define et structure que j'ai transformé en classe java (j'ai laissé certains enum de type enum pour des raisons particulières). Après transformation de ces .h en .class, j'ai effectué la commande javah pour créer des header. Mais, ayant crée une quarantaine de class pour pallier à mes enum, struct et compagnie, je me retrouve avec 40 .h (logique), et je me demande donc s' il est nécessaire de redéfinir dans mes .class les énumérations.
En effet, le travail de l'autre stagiaire montre qu'il n'a pas déclaré ou défini les enum, et qu'il l'ai a fait disparaitre:
Exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 //Dans sont edk.h d'origine (celui servant pour la dll): DLL_Export long_stdcall LaMéthode (char *X, int Y, enumération Z) //--> énumération étant un type enum étant défini plus haut dans le .h //Quand il transforme cette méthode dans edkJNI.java, cela donne: public static native int LaMéthode (String X, int Y); //--> l'énumération à disparu.
Je voulais donc savoir si je devais obligatoirement redéfinir les enum, struct et define en class, dans le cas contraire, je me retrouverai avec beaucoup moins de header.
Merci d'avance pour vos réponses, n'hésitez pas si vous avez besoin d'autres informations. (et désolé si ce n'est pas assez clair)
Partager